2015-02-11 66 views
0

我已经在Elasticsearch中使用边界-ngrams实现了自动完成功能。一切工作正常,但有一个奇怪的例子,我的执行不够聪明,无法处理。Elasticsearch自动完成与查询字词的双重匹配

假设我有索引的两个文件,

Green Dragon 
Green Griffin 

和I型

green gr 

结果我回来是

Green Dragon 
Green Griffin 

我使用的是 “匹配” 的查询与“和”运算符,因此查询中的每个术语必须匹配才能匹配查询。返回Green Dragon的原因是因为查询术语“绿色”匹配“绿色”,查询术语“gr”也匹配“绿色”。当然,我想把绿龙从结果中排除出去。

似乎要解决这个问题Elasticsearch需要跟踪索引中的哪些标记已匹配,而不是重用它们。在Elasticsearch中有没有办法做到这一点?

回答