elasticsearch default_field vs fields不同的结果

时间:2015-01-26 09:02:57

标签: elasticsearch

这是两个查询。 第一:

{
  "query": {
    "filtered": {
      "query": {
        "query_string": {
          "query": "27444.2",
          "default_field": "text"
        }
      }
    }
  },
  "from": 0,
  "size": 50
}

第二

{
  "query": {
    "filtered": {
      "query": {
        "query_string": {
          "query": "27444.2"
        }
      }
    }
  },
  "fields": ["text"],
  "from": 0,
  "size": 50
}

它们之间的唯一区别在于,首先我使用default_field指定要搜索的字段,然后在第二个i中通过字段param指定它。字段名称相同。 我希望两种变体都能产生相同的结果,但事实并非如此。第一个变量不返回任何结果,第二个变量返回结果。那么我在这里做错了什么?捕获在哪里

elasticsearch 1.4.2

2 个答案:

答案 0 :(得分:1)

你给出字段参数的方式是错误的。 在第二种情况下,您指的是限制结果的field params in the query,以便仅显示某些字段而不是整个_source

以下是您正在寻找的 -

{
  "query": {
    "filtered": {
      "query": {
        "query_string": {
          "query": "27444.2",
          "fields": ["text"]
        }
      }
    }
  },
  "from": 0,
  "size": 50
}

答案 1 :(得分:1)

2个查询不一样。 首先搜索字段' text'并且第二次搜索所有字段并作为响应,仅返回'字段'。