匹配和整个领域

时间:2014-09-04 12:27:05

标签: elasticsearch

查询:'goodbye cruel world'和名为'title'的字段 假设我有文件:

1. {'title': 'goodbye cruel'}   
2. {'title': 'goodbye world'}   
3. {'title': 'cruel world'}   
4. {'title': 'goodbye cruel world'}   
5. {'title': 'goodbye very cruel world'}

我希望查询仅匹配文档4和5,因为它们包含查询中的所有术语。我无法想办法实现这一目标。 我想保持字段的长度被索引但是它需要查询每个单词组合,我还能做什么?


我刚想我问了一个错误的问题:(
我将答案标记为正确但我真正想问的是:

查询:'goodbye cruel world'和名为'title'的字段 假设我有文件:

1. {'title': 'goodbye cruel'}   
2. {'title': 'goodbye world'}   
3. {'title': 'cruel world'}   
4. {'title': 'goodbye cruel world'}   
5. {'title': 'goodbye very cruel world'}
5. {'title': 'hello cruel world'}

我想要一个查询来匹配文档1,2,3,4而不是5或6,因为它们没有查询中的所有术语。

(之前我问了一个类似的问题并且答案是正确的,但这不是我真正想要的,所以我将其作为一个不同的问题提交)

1 个答案:

答案 0 :(得分:0)

使用match_phrase 1的slop查询。

{
  "query": {
    "match_phrase": {
      "title": {
        "query": "goodbye cruel world",
        "slop": 1
      }
    }
  }
}

欲了解更多信息:

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/slop.html

相关问题