2016-06-11 54 views
0

我正在使用ElasticSearch并希望同时激活精确单词和全文搜索。精确的单词搜索工作正常与not_analyzed索引和全文搜索工作正常与分析索引。现在我想结合这两个。下面是例子正是我想要的:ElasticSearch:将确切单词和全文搜索结合起来

假设我有两个记录:

  1. 这是苹果
  2. 苹果

如果“苹果”用户搜索那么就应该有一个结果(确切的词搜索),但如果用户搜索“苹果*”,那么必须有两个记录(全文搜索)。

回答

0

我可以使用elasticsearch执行精确的单词和全文搜索。我已经将字段映射到not_analyzed索引,然后使用通配符进行全文搜索和筛选/条件以进行精确搜索。所以我完成了几乎所有的东西。现在最后一个问题我正面临如何为多个字段使用通配符。

下面是通配符查询: "query": { "wildcard": { "Field1": { "value": "*apple*" } } }

我有多个字段字段1,字段2 ....字段N。我必须为所有文件搜索相同的值。我试过: "query": { "wildcard": { "Field1": { "value": "*apple*" } , "Field2": { "value": "*apple*" } } }

但它只显示最后一个字段的结果(在上面的情况下是Field2)。

其实我不想查询所有字段并将结果结合到一个结果集。我认为必须有单个查询才能获得通配符的所有字段的结果。请帮帮我。

谢谢 Tarlok

相关问题