`
kavy
  • 浏览: 888650 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Solr 同义词搜索 synonyms

 
阅读更多

Solr同义词搜索是一个很好的功能实现,解决了产品需求中很大的问题,如:搜索用户搜索"刮胡刀" 更好的展示结果是把 "刮胡刀"跟"剃须刀"都显示给用户,这样就可以达到更好的效果。下面讲下具体实现: solr.SynonymFilterFactory

Creates SynonymFilter

Matches strings of tokens and replaces them with other strings of tokens.

  1. The synonyms parameter names an external file defining the synonyms.
  2. If ignoreCase is true, matching will lowercase before checking equality.
  3. If expand is true, a synonym will be expanded to all equivalent synonyms. If it is false, all equivalent synonyms will be reduced to the first in the list.
  4. The optional tokenizerFactory parameter names a tokenizer factory class to analyze synonyms (see https://issues.apache.org/jira/browse/SOLR-319 ), which can help with the synonym+stemming problem described in http://search-lucene.com/m/hg9ri2mDvGk1 .

schema.xml配置

<fieldTypename="text"class="solr.TextField"positionIncrementGap="100"><analyzertype="index"><tokenizerclass="solr.ChineseTokenizerFactory"/><filterclass="solr.SynonymFilterFactory"synonyms="synonyms.txt"ignoreCase="true"expand="true"tokenizerFactory="solr.ChineseTokenizerFactory"/><filterclass="solr.StopFilterFactory"ignoreCase="true"words="stopwords.txt"enablePositionIncrements="true"/><filterclass="solr.WordDelimiterFilterFactory"generateWordParts="1"generateNumberParts="1"catenateWords="1"catenateNumbers="1"catenateAll="0"splitOnCaseChange="0"/><filterclass="solr.LowerCaseFilterFactory"/><filterclass="solr.RemoveDuplicatesTokenFilterFactory"/></analyzer><analyzertype="query"><tokenizerclass="solr.ChineseTokenizerFactory"/><filterclass="solr.SynonymFilterFactory"synonyms="synonyms.txt"ignoreCase="true"expand="true"tokenizerFactory="solr.ChineseTokenizerFactory"/><filterclass="solr.StopFilterFactory"ignoreCase="true"words="stopwords.txt"enablePositionIncrements="true"/><filterclass="solr.WordDelimiterFilterFactory"generateWordParts="1"generateNumberParts="1"catenateWords="0"catenateNumbers="0"catenateAll="0"splitOnCaseChange="1"/><filterclass="solr.LowerCaseFilterFactory"/><filterclass="solr.RemoveDuplicatesTokenFilterFactory"/></analyzer></fieldType>

synonyms.txt配置

# blank lines and lines starting with pound are comments.  #Explicit mappings match any token sequence on the LHS of "=>"#and replace with all alternatives on the RHS.  These types of mappings  #ignore the expand parameter in the schema.  #Examples:  #-----------------------------------------------------------------------  #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  

a\,a => b\,b  
分享到:
评论

相关推荐

    支持Spring-data-solr1.5的ik分词器,同义词

    支持Spring-data-solr1.5的ik分词器,并且修改了代码,添加一个新的类,用于支持同义词,目前可以同时支持分词和同义词的功能。 修改 managed-schema,添加 &lt;fieldType name="text_lk" class="solr.TextField"&gt; ...

    synonyms:PeerJ ElasticsearchSolr 同义词

    PeerJ Elasticsearch/Solr 同义词 PLOS 同义词 网址: : 许可证:CC-BY 2.5 网 网址: : 许可:必须将美国国家医学图书馆标识为数据的创建者、维护者和提供者; 当前 PeerJ 用法: 同义词: 运行: : 连接...

    solr分词器使用手册

    在查询时,除了相同的分词及过滤过程外,还会额外使用SynonymFilterFactory来处理同义词。 #### 五、Solr安装与配置 - **下载与安装**: - **下载地址**:官方下载地址为http://lucene.apache.org/solr/。 - **...

    solr的一个小例子

    Solr,全称为Apache Solr,是一款开源的全文搜索...进一步深入,你可以探索Solr的更多高级特性,如 faceting(聚类)、spell checking(拼写检查)和 synonyms(同义词处理),以及如何利用SolrCloud实现分布式搜索。

    solr 7 官方文档

    - **Synonyms**:同义词处理,提高搜索精度和用户体验。 - **Geospatial Search**:支持地理位置搜索,可以按距离或区域过滤结果。 6. **SolrCloud** - **Zookeeper协调**:SolrCloud利用Zookeeper进行集群管理...

    solr所需配置文件

    10. **语言分析器相关文件**:例如stopwords.txt(停用词列表)、synonyms.txt(同义词列表)等,用于文本分析和索引时的词汇处理。 这些配置文件在Solr中的作用至关重要,正确配置它们可以优化索引性能,提高查询...

    图解Solr5.3.1与MySQL配置【原创】

    - **synonyms.txt**:同义词配置。 - **spellings.txt**:拼写检查配置。 #### 八、测试与验证 完成配置后,我们需要进行一些测试操作来验证Solr是否能够正确地从MySQL中导入数据,并提供准确的搜索结果。 1. **...

    solr开发指南.zip

    除了以上基本功能,Solr还有许多高级特性,如 Spell Checking(拼写检查)、Synonyms(同义词处理)、Highlighting(高亮显示)、Faceting(分面搜索)、Clustering(聚类)和More Like This(类似文档推荐)等。...

    Apache Solr 3 Enterprise Search Server

    - **Synonyms**(同义词):设置同义词表来扩展查询词汇,比如“汽车”和“车辆”视为等价。 #### 三、数据导入与格式支持 - **CSV、XML**等文件格式的导入:Solr支持多种格式的数据源,包括CSV、XML等,使得数据...

    namex:BC省注册局名称审查,研究和批准系统API

    2018-11-01 * solr同义词的更改2018-10-19发行 文献资料 GitHub Pages( )是记录应用程序/项目的一种好方法。 该存储库中的文件 api - the core API service solr - solr is used as a search service providing ...

    搜索引擎技术教程 网络搜索引擎原理-第7章 Xapian简介 共39页.pptx

    - **Wildcard and Synonyms**:支持通配符查询以及同义词扩展,增加搜索的灵活性。 - **Facet Search**:支持基于元数据的分面搜索,帮助用户更有效地导航搜索结果。 #### 六、Xapian的内部结构 - **Documents**:...

    Lucene原理

    - **同义词处理(Synonyms)**:识别并处理同义词,扩大搜索范围。 6. **优化与性能** - **位集(Bitset)**:用于快速过滤和比较文档,提高查询效率。 - **缓存(Cache)**:利用内存缓存高频查询结果,提升...

    ik分词器文档

    - 这些文件通常包括但不限于`stopwords.txt`(停用词列表)、`synonyms.txt`(同义词列表)等。 3. **配置schema.xml**: - 在`schema.xml`文件中,配置`text_general`字段类型时,应使用IKAnalyzer作为分析器。 ...

Global site tag (gtag.js) - Google Analytics