lucene - 动态更改 elasticsearch 同义词

标签 lucene elasticsearch

是否可以在索引中存储elasticsearch的同义词?或者是否可以从像 couchdb 这样的数据库中获取同义词列表? 我想通过 REST-API 向 elasticsearch 动态添加同义词。

最佳答案

使用同义词有两种方法:

  • 在编制索引时扩展它们,
  • 在查询时扩展它们。

不建议在查询时扩展同义词,因为它会引发以下问题:

  • 评分,因为同义词有不同的文档频率,
  • 多标记同义词,因为查询解析器在空格处拆分。

有关此的更多详细信息,请访问 http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.SynonymFilterFactory (在 Solr wiki 上,但也与 ElasticSearch 相关)。

因此推荐的方法是在索引时扩展同义词。在您的情况下,如果同义词列表是动态管理的,则意味着您应该重新索引每个包含其同义词列表已更新的术语的文档,以便在更新前后分析的文档之间的评分保持一致。我并不是说这是不可能的,但它需要一些工作,并且可能会引发索引中高频同义词的性能问题。

关于lucene - 动态更改 elasticsearch 同义词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7272368/

相关文章:

java - 在 Lucene 4 中,AtomicReader 和 CompositeReader 有什么区别

elasticsearch - Elasticsearch删除文档的处理

linux - Logstash 过早创建目录

elasticsearch - Elasticsearch聚合等效于MongoDB $ unwind步骤

elasticsearch - 如何在ES中定期自动删除索引?

search - 使用通配符和词干的组合

dictionary - 如何在 Solr 的 POJO 中存储 map ?

elasticsearch - 如何从Kafka Connect在Elastic Search中创建多个索引

search - 如何配置Elasticsearch以匹配数字或 “spelled-out”数字?

elasticsearch - Elasticsearch中的数据屏蔽