【发布时间】:2014-06-10 06:54:59
【问题描述】:
我正在索引一堆不同语言的文档,据我所知,我可以通过使用 _analyzer 映射在文档的一个字段中指定在索引时为每个文档使用哪个分析器:
见http://www.elasticsearch.org/guide/reference/mapping/analyzer-field.html
本质上,法语文档的语言字段设置为“法语”,这将指示 Elasticsearch 它需要应用法语词干规则并去除法语停用词。
现在我是否必须在查询时指定一个分析器,以便 Elasticsearch 可以在实际处理查询之前将相同的词干规则应用于查询?如果是这样,那就有点令人沮丧了,因为我希望能够搜索整个索引,最终提供一个“应该”子句来支持某种语言的文档而不是其他语言。
我不知道的是,Elasticsearch 是否通过应用迄今为止在索引中使用的每个分析器来构建多个查询。如果没有,我看到的唯一解决方案是根据文档的语言将文档拆分为不同的类型,然后并行触发多个查询,并在客户端具有某种接收器功能,该功能将合并结果并按其分数对它们进行排序。但是,即使我可以发送批量查询(以限制网络往返),该解决方案显然不是最佳的。
有什么想法吗?
【问题讨论】:
标签: elasticsearch multilingual analyzer stop-words stemming