solr中自带有synonyms的功能,但是功能很有限,因为中文需要在分词的基础上进行搜索,所以官方的配置就没有多大意义。
概念说明:同义词大体的意思是指,当用户输入一个词时,solr会把相关有相同意思的近义词的或同义词的term的语段内容从索引中取出,展示给用户,提高交互的友好性(当然这些同义词的定义是要在配置文件中事先定义好的),比如:用户输入:日本,那么就可能有一些相关的近义词如:鬼子,屠杀,战犯等的词,这个可在配置文件中事先定义好。
一) 官方的配置:这个配置是在cookbook中有提及的,但是在中文分词上没办法加在一起,所以基本上没用。
1:在schema.xml的<types>标签中添加<fieldType>,如下:
<fieldType name="text_syn" class="solr.TextField"> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.SynonymFilterFactory" synonyms="synonyms. txt" ignoreCase="true" expand="false" /> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType>
这其中涉及到的synonyms.txt文件是配置文件中原来就有的,这个就是同义词的配置文件。大体格式如下
# The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. #----------------------------------------------------------------------- #some test synonym mappings unlikely to appear in real input text aaafoo => aaabar bbbfoo => bbbfoo bbbbar cccfoo => cccbar cccbaz fooaaa,baraaa,bazaaa # Some synonym groups specific to this example GB,gib,gigabyte,gigabytes MB,mib,megabyte,megabytes Television, Televisions, TV, TVs #notice we use "gib" instead of "GiB" so any WordDelimiterFilter coming #after us won't split it into two words. 中国,英国,日本 # Synonym mappings can be used for spelling correction too pixima => pixma
我已经在上面加入了中文的配置(由于字符集的问题,请修改完成后用EditNote打开并选择格式-->UTF-8编码,如有乱码就改),意思是输入这几个中文字都是一样的搜索结果,另外其中还有=>及以逗号分隔的,这里引用官方的话做参考:
Let's get back to our example for a second. What if the person from the marketing department says that he/she wants not only to be able to find books that have the word "machine" to be found when entering the word "electronics", but also all the books that have the word "electronics", to be found when entering the word "machine". The answer is simple. First, we would set the expand attribute (of the filter) to true. Then we would change our synonyms.txt file to something like this: machine, electronics As I said earlier Solr would expand synonyms to equivalent forms.
就是说=>指一对一,以逗号分隔的是组群,也就是多对多。
当然这个还得定义相关字段为这个类型,如下。
<field name="content_copy" type="text_syn" indexed="true" stored="true"/>
这时,在界面analysis上测试一下, 输入pixima, 会出现pixma的匹配词组。
相关推荐
solr的同义词库,文档是从其他地方拿的,放到这里供大家下载,共2万1千条
IKAnalyzer2012FF_u1.jar,同义词版本,本人亲测,木有问题,可以配置Solr的同义词,
1. **同义词**:在Solr中,可以使用Solr的同义词扩展来处理词汇的同义关系。例如,"车"和"汽车"可以视为同义词,当用户搜索"车"时,也能匹配到包含"汽车"的文档。这通过配置同义词文件和同义词过滤器实现。 2. **...
支持Spring-data-solr1.5的ik分词器,并且修改了代码,添加一个新的类,用于支持同义词,目前可以同时支持分词和同义词的功能。 修改 managed-schema,添加 <fieldType name="text_lk" class="solr.TextField"> ...
**Solr 词形还原与同义词处理** 在信息技术领域,搜索引擎的性能往往取决于其对用户查询的理解程度。Apache Solr 是一个流行的开源全文搜索引擎,它提供了丰富的特性和功能来提升搜索体验,其中之一就是词形还原...
PeerJ Elasticsearch/Solr 同义词 PLOS 同义词 网址: : 许可证:CC-BY 2.5 网 网址: : 许可:必须将美国国家医学图书馆标识为数据的创建者、维护者和提供者; 当前 PeerJ 用法: 同义词: 运行: : 连接...
ikanalyzer 提供了丰富的扩展性,用户可以根据自己的需求定制词典,支持自定义停用词、同义词等,以满足不同场景的分词需求。同时,ikanalyzer 还提供了全模式和最细粒度模式两种分词策略,全模式尽可能切出更多的词...
对于大型企业或者需要处理大量数据的场景,Solr 6.2.1提供了强大的搜索能力,包括拼写纠错、同义词处理、评分机制等,能有效提升用户体验。同时,其丰富的API和社区支持,使得定制化需求得以满足。总之,Solr 6.2.1...
了解这些基础知识后,你就可以开始探索 Solr 8.8.2 的高级特性,如实时增删改查、多字段排序、高亮显示、同义词处理、地理位置搜索以及更复杂的查询表达式等。通过熟练掌握 Solr,你将能够构建强大而高效的全文搜索...
在查询时,除了相同的分词及过滤过程外,还会额外使用SynonymFilterFactory来处理同义词。 #### 五、Solr安装与配置 - **下载与安装**: - **下载地址**:官方下载地址为http://lucene.apache.org/solr/。 - **...
可做为电商搜索引擎solr的扩展词库,20W+专业名词,txt文件可修改后缀名,不定时更新。
4. **扩展性**:Ik Analyzer提供了一些插件接口,方便开发者根据需求进行扩展,例如停用词过滤、同义词扩展等。 5. **兼容性**:Ik Analyzer与多个版本的Solr和Lucene兼容,包括在这个压缩包中的Solr 7.x版本。 将...
3. 结合其他组件:配合SynonymFilter处理同义词,提升搜索效果。 4. 多字段分词:针对不同字段使用不同的分词策略,满足多样化需求。 总结来说,Solr中文分词器是实现高效中文搜索的关键,选择合适的分词器并进行...
Solr通过建立倒排索引来实现高效的搜索,将每个词与包含它的文档关联起来。 在Solr 7.1.0中,用户可以创建多个独立的搜索“集合”或“核心”,每个集合都可以有自己的索引和配置。这样,你可以为不同的数据集或业务...
- **分词和索引**:它使用Lucene库进行文本分析和索引,能进行词语拆分、同义词扩展和停用词过滤等操作。 - **字段存储和检索**:Solr允许用户为不同字段设置不同的检索策略,如精确匹配、范围查询等。 - **排序...
它使用了倒排索引技术,可以实现模糊匹配、短语查询、同义词查询等多种高级搜索功能。 2. **分布式处理**:随着大数据时代的到来,Solr 8.1.1支持分布式部署,可以将索引分散到多台服务器上,实现水平扩展,处理PB...
1. **全文检索**:Solr以其强大的文本分析能力而闻名,它支持多种语言的分词,可以进行复杂的查询操作,如模糊匹配、短语查询和同义词搜索。 2. **多字段索引**:Solr允许用户为不同的数据字段创建独立的索引,这...
6. **拼音和同义词支持**:Solr内置了对中文拼音和同义词的支持,可以通过配置扩展其自然语言处理能力,提升中文搜索的准确度。 7. **配置与定制**:Solr的配置主要通过XML文件进行,包括核心配置、请求处理器、...
它内置了词干提取、同义词扩展和停用词过滤等自然语言处理工具,以提高搜索精度。 2. **分面导航(Faceting)**:Solr允许用户通过分面来过滤和细化搜索结果,这在电子商务网站和大型信息库中非常常见,用户可以...