elasticsearch以标准返回所有结果

时间:2018-02-09 17:08:54

标签: elasticsearch

我想用弹性搜索(6.1)进行研究,如果标准' searchText'是空的。

实际上,我有这个:

  'query': {
    'bool': {
      'should': [
        {
          'match_all': {}
        },
        {
          'nested': {
            'path': 'person',
            'query': {
              'and': {
                'should': [
                  {'match': {'person.name': searchText}},
                  {'match': {'person.noCtr': searchText}},
                  {'match': {'person.noIde': searchText}}
                ]
              }
            }
          }
        }
      ]
    }
  }

有了这个,当searchText为空时,我得到了所有结果。但是如果填充了searchText,则仍会显示所有结果(无论标准如何)

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

尝试在查询中添加“ minimum_should_match ”:1,以便仅在其中一个“should”子句为真时才显示结果。

如果您想在多个字段中搜索相同的值,可以在“ _all ”(“全部包含”)中详细了解

https://www.elastic.co/guide/en/elasticsearch/reference/5.5/mapping-all-field.html