|
apache-solr-3.2.0基于TOMCAT安装 以下是windows的安装方法,与linux安装是一样的
修改tomcat的server.xml文件
增加tomcat\conf\Catalina\localhost\solr.xml文件
访问地址http://localhost:8983/solr/admin/即可进入SOLR的查询页面
SOLR 中 Schema.xml 的filedType 的一些属性的理解
1. dynamicField 的作用是什么?
如果你需要在schema.xml文件中的 ......部分定义多个(math_score,chinese_score,english_score,....),而恰好这些的type属性又相同(type="integer"),那么就可以借助 dynamicField 用一个句子完成
这样,在一个document中,就可以使用math_score,chinese_score,english_score 这些字段名,虽然在schema.xml文件中并未对它们进行一一定义。
dynamicField就是動態欄位, 要是你有太多欄位無法一一設定,你可以用dynamicField處理像下面這第一個dynamicField就是說, 所有欄位是以 _i做結尾的 (如 a_i, sss_i, id_i等等)都套用這個設定.
2. sortMissingLast 和 sortMissingFirst对的属性之一。只在对该进行排序时,才起作用。
·
sortMissingLast = true时,那些在该上没有值的documents将被排在那些在该上有值的documents之后。
·
sortMissingFirst = true时的情况正好相反。
·
如果两者都设为false,则使用Lucene的排序。
3. positionIncrementGap=100 只对 multiValue = true 的fieldType有意义。
http://svn.apache.org/repos/asf/ ... olr/conf/schema.xml
Suppose a document has a multi-valued "author" field. Like this:
author: John Doe
author: Bob Smith
With a position increment gap of 0, a phrase query of "doe bob" would
be a match. But often it is undesirable for that kind of match across
different field values. A position increment gap controls the virtual
space between the last token of one field instance and the first token
of the next instance. With a gap of 100, this prevents phrase queries
(even with a modest slop factor) from matching across instances.
4. omitNorms
什么是Norm,现在还不懂????
5. LowerCaseFilterFactory的作用。
例如Kobe Bryant在分词后 kobe 不能搜索到结果 Kobe可以,虽然这个是中文分词
法,但经常有中英混输的情况,如果在输入英文后,查不到结果,也是比较失望的,
另外我看了你的源代码,建议在词库的引进上采用单例模式,在web应用上会比较好,
谢谢你的帮助,另外我看了solol的mmseg的接口比较不错,你是否有意看看,另外再
次感谢你的solr分词
Comment 1 by chenlb2008, Aug 16, 2009 英文小写,好办,用 就行,详情请
看:http://blog.chenlb.com/2009/04/s ... seg4j-use-demo.html
solol 基本没看,我只是怕看了会影响我的设计思路。
也准备实现 http://chenlb.javaeye.com/blog/439843 提到的一些功能。
多谢你的关注。希望继续提出你的看法。
以下内容是从网上找到的
=====================
Solr schema.xml 的介紹
Tuesday, 1. April 2008, 07:23:25
solr
原來我是打算將Solr wiki裡的介紹直接翻譯成中文, 後來寫一寫覺得, 翻譯的內容太複雜, 很難懂. 所以在這裡我就直接拿一個schema.xml範例來介紹好了. 希望能幫助大家了解schema.xml
The Solr schema file. This file should be named "schema.xml" and should be in the conf directory under the solr home (i.e. ./solr/conf/schema.xml by default) or located where the classloader for the Solr webapp can find it.
For more information, on how to customize this file, please see… wiki.apache.org/solr/SchemaXml
資料型態, 你的資料可能要分很多不同型態做資料建置以便solr引擎做檢索, 就像一般資料庫一樣, 要對存入的資料做型態分類. 以下有string, boolean, integer, long, float, double 等等的資料型態, 就依你的須求做設定. 每一個fieldtype 都有幾個參數可設定, 其中name就是你給這個fieldtype的名子, 你可以隨你的方便取名. class是solr用的,就不可以亂取, 要針對你這個fieldtype的資料型態來告訴solr這個fieldtype裡的資料是什麼樣類型的資料,如 integer, text, string, long等等.
後面的sortMissingLast, omitNorms等設定你可以參考solr wiki schemalXml的介紹, 再依你的須求使用. 請參考下列範例.
如果是TextField的資料型態, 你可以用不同的Analyzer, Tokenizer, Filter對這個fieldtype的資料做處理. 像是中文切詞, 刪除前後空白, 或同義詞等等. 可依你的須求使用. 請參考下列範例.
設置好資料fieldType的型態後, 就是將這些fieldType套入對應的document fields. 只能多不能少. 也就是說假設你有一個document裡有 id, name, default等資料, 你的schema.xml不可以只有id, default這兩個field. 你一定要還要有name這個field. 但是你schema.xml裡若有id, name, defualt, text這四個欄位, 你的document卻可以只有id, default這兩個欄位.
上面這個欄位(field)是給你document裡的id欄用, 型態為string, 要index, 也要儲存在你的資料庫裡
dynamicField就是動態欄位, 要是你有太多欄位無法一一設定,你可以用dynamicField處理像下面這第一個dynamicField就是說, 所有欄位是以 _i做結尾的 (如 a_i, sss_i, id_i等等)都套用這個設定.
uniqueKey就像一般database的primary key一樣, 也就是說整個資料庫裡的每一筆資料的id欄位不可以與另一筆資料的id欄位有相同值.
id
defaultSearchField就是你在做query搜尋時若不指定特定欄位做檢索時, Solr就會只查這個欄位.
default
copyField是用來複製你一個欄位裡的值到另一欄位用. 如你可以將name裡的東西copy到default裡, 這樣solr做檢索時也會檢索到name裡的東西.
這裡defaultOperator設為 "AND", 就是說當你輸入的查尋詞句有空白時 ex. "遠東 餐廳", Solr搜尋解析器會當做你的query指令為"遠東AND餐廳". 若是設為 "OR" 就會變成"遠東OR餐廳".
這就是一個簡單的schema.xml介紹
SOLR安装路径
/home/download/apache-solr-3.2.0
开源PHP_SOLR类路径
/mnt/webroot/SolrPhpClient
TOMCAT安装路径
/usr/local/apache-tomcat-6.0.32
启动TOMCAT
/usr/local/apache-tomcat-6.0.32/bin/startup.sh
停止TOMCAT
/usr/local/apache-tomcat-6.0.32/bin/shutdown.sh |
|