elasticsearch" smart或"操作者

时间:2015-09-08 16:00:19

标签: elasticsearch fuzzy-search

我有下一个索引文档: [ { id: 1 title: "Programming languages - Java", }, { id: 2 title: "Programming languages - Python", }, { id: 3 title: "Program languages - Lisp", } ] 正在寻找有关java和python的文档的用户,可能会发出如下请求:有关编程java和python的书籍。 我可以构建查询以仅返回文档1和2吗?

问题是如果通过运算符AND组合术语,则不会发现任何内容。同时,当使用运算符OR时,将返回所有文档,但在这种情况下,id为3的文档是多余的。

还需要考虑在查询中可以包含文档中不存在的额外术语,例如书籍和单词"和"。

1 个答案:

答案 0 :(得分:0)

简单的match查询可能已经满足您的需求:

{
  "query": {
    "match": {
      "title": {
        "query": "books about programming java and python",
        "fuzziness": "AUTO"
      }
    }
  }
}