- 浏览: 958096 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (385)
- 搜索引擎学习 (62)
- 算法 (1)
- 数据库 (15)
- web开发 (38)
- solr开发 (17)
- nutch 1.2 系统学习 (8)
- cms (1)
- 系统架构 (11)
- linux 与 unix 编程 (16)
- android (15)
- maven (1)
- 关注物流 (1)
- 网址收集 (1)
- 分布式,集群 (1)
- mysql (5)
- apache (1)
- 资料文档备份 (7)
- 上班有感 (0)
- 工作流 (15)
- javascript (1)
- weblogic (1)
- eclipse 集成 (1)
- JMS (7)
- Hibernate (1)
- 性能测试 (1)
- spring (6)
- 缓存cache (1)
- mongodb (2)
- webservice (1)
- HTML5 COCOS2D-HTML5 (1)
- BrowserQuest (2)
最新评论
-
avi9111:
内陷到android, ios, winphone里面也是随便 ...
【HTML5游戏开发】二次开发 BrowserQuest 第一集 -
avi9111:
呵呵,做不下去了吧,没有第二集了吧,游戏是个深坑,谨慎进入,其 ...
【HTML5游戏开发】二次开发 BrowserQuest 第一集 -
excaliburace:
方案3亲测完全可用,顺便解决了我其他方面的一些疑问,非常感谢
spring security 2添加用户验证码 -
yuanliangding:
Spring太强大了。
Spring Data JPA 简单介绍 -
小高你好:
什么是hibernate懒加载?什么时候用懒加载?为什么要用懒加载?
from matching across instances.
4. omitNorms
什么是Norm,现在还不懂????
5. LowerCaseFilterFactory的作用。
例如Kobe Bryant在分词后 kobe 不能搜索到结果 Kobe可以,虽然这个是中文分词
法,但经常有中英混输的情况,如果在输入英文后,查不到结果,也是比较失望的,
另外我看了你的源代码,建议在词库的引进上采用单例模式,在web应用上会比较好,
谢谢你的帮助,另外我看了solol的mmseg的接口比较不错,你是否有意看看,另外再
次感谢你的solr分词
|
Comment 1 by chenlb2008, Aug 16, 2009
英文小写,好办,用 <filter class="solr.LowerCaseFilterFactory"/> 就行,详情请 看:http://blog.chenlb.com/2009/04/solr-chinese-segment-mmseg4j-use-demo.html solol 基本没看,我只是怕看了会影响我的设计思路。 也准备实现 http://chenlb.iteye.com/blog/439843 提到的一些功能。 多谢你的关注。希望继续提出你的看法。 |
以下内容是从网上找到的
=====================
Solr schema.xml 的介紹
Tuesday, 1. April 2008, 07:23:25
原來我是打算將Solr wiki裡的介紹直接翻譯成中文, 後來寫一寫覺得, 翻譯的內容太複雜, 很難懂. 所以在這裡我就直接拿一個schema.xml範例來介紹好了. 希望能幫助大家了解schema.xml
<?xml version="1.0" ?>
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
<?xml version="1.0" ?>
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
<schema name="solr" version="1.1">
資料型態, 你的資料可能要分很多不同型態做資料建置以便solr引擎做檢索, 就像一般資料庫一樣, 要對存入的資料做型態分類. 以下有string, boolean, integer, long, float, double 等等的資料型態, 就依你的須求做設定. 每一個fieldtype 都有幾個參數可設定, 其中name就是你給這個fieldtype的名子, 你可以隨你的方便取名. class是solr用的,就不可以亂取, 要針對你這個fieldtype的資料型態來告訴solr這個fieldtype裡的資料是什麼樣類型的資料,如 integer, text, string, long等等.
後面的sortMissingLast, omitNorms等設定你可以參考solr wiki schemalXml的介紹, 再依你的須求使用. 請參考下列範例.
<types>
<fieldtype name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldtype name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>
<fieldtype name="integer" class="solr.IntField" omitNorms="true"/>
<fieldtype name="long" class="solr.LongField" omitNorms="true"/>
<fieldtype name="float" class="solr.FloatField" omitNorms="true"/>
<fieldtype name="double" class="solr.DoubleField" omitNorms="true"/>
<fieldtype name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/>
<fieldtype name="slong" class="solr.SortableLongField" sortMissingLast="true" omitNorms="true"/>
<fieldtype name="sfloat" class="solr.SortableFloatField" sortMissingLast="true" omitNorms="true"/>
<fieldtype name="sdouble" class="solr.SortableDoubleField" sortMissingLast="true" omitNorms="true"/>
<fieldtype name="date" class="solr.DateField" sortMissingLast="true" omitNorms="true"/>
如果是TextField的資料型態, 你可以用不同的Analyzer, Tokenizer, Filter對這個fieldtype的資料做處理. 像是中文切詞, 刪除前後空白, 或同義詞等等. 可依你的須求使用. 請參考下列範例.
<fieldtype name="text_ws" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
</analyzer>
</fieldtype>
<fieldtype name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldtype>
<fieldtype name="textTight" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldtype>
</types>
設置好資料fieldType的型態後, 就是將這些fieldType套入對應的document fields. 只能多不能少. 也就是說假設你有一個document裡有 id, name, default等資料, 你的schema.xml不可以只有id, default這兩個field. 你一定要還要有name這個field. 但是你schema.xml裡若有id, name, defualt, text這四個欄位, 你的document卻可以只有id, default這兩個欄位.
<fields>
<field name="id" type="string" indexed="true" stored="true"/>
上面這個欄位(field)是給你document裡的id欄用, 型態為string, 要index, 也要儲存在你的資料庫裡
<field name="default" type="text" indexed="true" stored="false" multiValued="true"/>
<field name="name" type="text" indexed="true" stored="false" multiValued="true"/>
dynamicField就是動態欄位, 要是你有太多欄位無法一一設定,你可以用dynamicField處理像下面這第一個dynamicField就是說, 所有欄位是以 _i做結尾的 (如 a_i, sss_i, id_i等等)都套用這個設定.
<dynamicField name="*_i" type="integer" indexed="true" stored="true"/>
<dynamicField name="*_t" type="text" indexed="true" stored="true"/>
<dynamicField name="*_f" type="float" indexed="true" stored="true"/>
<dynamicField name="*_b" type="boolean" indexed="true" stored="true"/>
<dynamicField name="*_d" type="date" indexed="true" stored="true"/>
<dynamicField name="*_s" type="string" indexed="true" stored="true"/>
<dynamicField name="*_ri" type="sint" indexed="true" stored="true"/>
<dynamicField name="*_rf" type="sfloat" indexed="true" stored="true"/>
<dynamicField name="*_facet" type="string" indexed="true" stored="true"/>
</fields>
uniqueKey就像一般database的primary key一樣, 也就是說整個資料庫裡的每一筆資料的id欄位不可以與另一筆資料的id欄位有相同值.
<uniqueKey>id</uniqueKey>
defaultSearchField就是你在做query搜尋時若不指定特定欄位做檢索時, Solr就會只查這個欄位.
<defaultSearchField>default</defaultSearchField>
copyField是用來複製你一個欄位裡的值到另一欄位用. 如你可以將name裡的東西copy到default裡, 這樣solr做檢索時也會檢索到name裡的東西.
<copyField source="name" dest="default"/>
這裡defaultOperator設為 "AND", 就是說當你輸入的查尋詞句有空白時 ex. "遠東 餐廳", Solr搜尋解析器會當做你的query指令為"遠東AND餐廳". 若是設為 "OR" 就會變成"遠東OR餐廳".
<solrQueryParser defaultOperator="AND"/>
</schema>
发表评论
-
IK的整个分词处理过程【转】
2013-01-08 12:48 1126首先,介绍一下IK的整个分词处理过程: 1. Lucene的 ... -
solr 4 分词报错 This Functionality requires the /analysis/field Handler to be regist
2013-01-08 11:43 2142This Functionality requires the ... -
solr multivalued 说明
2013-01-08 09:15 4846solr的schema.xml配置文件在配置field的时候有 ... -
solr 处理数据库数据索引 DataImportHandler 报内存不足,解决方案
2010-06-27 10:31 3098通过数据库,批量建立索引,如果数据量大,则会报内 ... -
solr 范围查询
2010-06-27 01:50 6604solr的范围查询 TO //s ... -
solr 通过 数据库导入 建立索引
2010-06-26 22:47 2372今天写错一个单词,忙会了,一下午,因为本人也是刚接触,所以对一 ... -
solrj 的使用总结
2010-06-26 22:45 27791、solrserver的获取 1.1CommonsHttp ... -
通过dataimport 建立solr索引
2010-06-26 14:01 5723今天写错一个单词,忙会了,一下午,因为本人也是刚接触,所以对一 ... -
solr 处理数据库数据索引 DataImportHandler 的使用[转]
2010-06-24 21:10 19951、编辑 solrconfig.xml 注册一个请求 uri ... -
solr morelikethis功能
2010-05-06 15:37 3165在 Google 上尝试一个查询,您会注意到每一个结果都包含 ... -
利用SOLR搭建企业搜索平台 之四(MultiCore)[转]
2010-04-22 21:54 1839利用SOLR搭建企业搜索平 ... -
利用SOLR搭建企业搜索平台 之三(配置文件)
2010-04-22 21:51 1406关键字: solr lucene 搭建 ... -
利用SOLR搭建企业搜索平台 之二(中文分词)[转]
2010-04-22 21:51 1878关键字: solr lucene 搭建 中文分词 http:/ ... -
利用SOLR搭建企业搜索平台 之一(运行solr)[转]
2010-04-22 21:49 1822在网络上找了很多的关 ... -
使用solr搭建你的全文检索[转]
2010-04-22 20:43 1408Solr 是一个可供企业使用的、基于 Lucene 的开箱即用 ... -
Solr的检索运算符[转]
2010-04-22 20:39 1619[Solr的检索运算符]? “:” 指定字段查指定值,如返回所 ...
相关推荐
### Solrconfig.xml 和 Schema.xml 说明 #### Solrconfig.xml 概述 Solrconfig.xml 是 Apache Solr 的核心配置文件之一,主要用于定义 Solr 实例如何处理文档的索引与查询请求。该文件中包含了多种配置项,用于...
接着,在Solr的schema.xml配置文件中,我们需要定义一个使用mmseg4j的分析器。通常,这涉及到创建一个新的字段类型,并配置对应的分析器,如`<fieldType name="text_mmseg" class="solr.TextField">`,然后在`...
3. **配置与部署**:Solr的配置文件位于`conf`目录下,包括schema.xml(定义字段和字段类型)、solrconfig.xml(配置索引和查询参数)等。用户可以根据需求自定义这些配置。部署Solr通常涉及解压下载的`solr-4.10.3....
描述中提到,你需要修改`wen.xml`中的`solrhome`路径,但默认情况下,Solr的配置文件应该是`server/solr/solr.xml`。在这个文件中,你应找到类似`<solr persistent="true">`的元素,里面包含各个核心的配置。确保这...
每个核心有自己的配置,如字段类型、字段配置、搜索处理链等,这些都在`conf`目录下的`schema.xml`、`solrconfig.xml`等文件中定义。 此外,Solr还支持多种数据源的接入,例如文件系统、数据库等,通过数据驱动的...
其中,`solr.xml`是Solr的全局配置文件,`configsets`包含了预定义的配置集,可以快速创建和配置索引。 3. **dist** 文件夹:包含Solr的JAR文件和相关的依赖库,这些文件在启动Solr时会被加载。 4. **docs** ...
### Solr中的schema.xml详解 在Solr搜索服务器中,`schema.xml` 文件扮演着核心配置文件的角色,它定义了索引字段、字段类型以及其他与数据结构相关的设置。正确理解和配置`schema.xml`对于实现高性能的全文检索...
主要的配置文件位于 `solr-8.8.1/server/solr/configsets/_default/conf` 目录下,包括 `solrconfig.xml` 和 `schema.xml`。这些文件定义了索引和查询的行为。 启动 Solr 需要 Java 运行环境。确保已安装 Java 8 或...
通常,这会涉及到修改 `server/solr/solr.xml` 文件来配置核心(collection)和数据目录。 综上所述,这个压缩包提供了一个完整的 Solr 8.5.2 配置实例,适用于需要对 MySQL 数据库中的中文文本进行全文搜索的场景...
《Solr.3.1.Cookbook》是一本专注于Apache Solr搜索引擎的实践指南,而提供的"Solr.3.1.Cookbook_Code"压缩包则包含了书中所讲解的源代码示例。Solr是基于Lucene的全文搜索服务器,它提供了一个高效、可扩展的搜索...
1. **配置**:根据你的需求修改配置文件,如`solr/solr.xml`,以设置Solr云或者单节点实例。 2. **启动**:使用Java运行时环境(JRE)启动Solr。在Solr的bin目录下,有启动和停止脚本,如`start.sh`和`stop.sh`。 3....
3. **启动Solr**:运行`bin/solr start`启动Solr服务器,首次启动会生成默认的`solr.xml`配置文件。 4. **创建Core**:Solr的核心概念是Core,每个Core代表一个独立的搜索实例。使用`bin/solr create -c mycore`...
你需要知道如何配置Solr核心(core)以满足你的需求,这可能涉及到创建和修改`solrconfig.xml`(配置文件)、`schema.xml`(定义字段和分析器)和`managed-schema`(在较新版本中,用于替代`scheam.xml`)。...
- **server**:包含Solr服务器的核心组件,如`solr.xml`配置文件、`lib`目录下的库文件和`solr-core`目录。 - **dist**:存放Solr的JAR文件和其他分发文件。 - **example**:是一个预配置的示例,帮助新手快速上手...
solr更新到6.x的版本了,ik-analyzer-5.x.jar又不好使了。 无意间从"随-忆"的博客中看到了如何去修改源代码,从而让分词器能够适应6.x的版本,亲自尝试了一下,果然可以,于是奉上了自己重新编译的jar包。 6.x的版本...
为了启动 Solr,你需要配置 solr.in.sh(Linux)或 solr.in.cmd(Windows),设置 Java 安装路径和堆大小。然后,通过运行 bin/solr start 命令启动 Solr 服务器。接着,你可以通过浏览器访问 ...
4. **solr-8.2.0/server**:这是Solr的核心服务器组件,包括Jetty服务器配置、Solr的配置文件(如solrconfig.xml和schema.xml)、启动脚本以及Solr的JAR文件。 5. **solr-8.2.0/solr**:包含了默认的Solr集合(core...
4. **配置文件**:压缩包中的配置文件包括`solrconfig.xml`和`schema.xml`。`solrconfig.xml`定义了Solr实例的行为,包括搜索处理流程、缓存策略和更新处理。`schema.xml`(在较新版本中为managed schema)用于定义...
- 在`apache-tomcat-5.5.26\conf\Catalina\localhost\`目录下新建`solr.xml`文件,配置如下: ```xml <?xml version="1.0" encoding="UTF-8"?> <Environment name="solr/home" type="java.lang.String" value=...
2. **配置schema.xml**:在Solr的配置文件`schema.xml`中,定义字段类型(fieldType)并指定使用IKAnalyzer。例如: ```xml <fieldType name="text_ik" class="solr.TextField"> <tokenizer class="org.wltea....