elasticsearch default_field vs fields 不同的结果
elasticsearch default_field vs fields different results
这里有两个查询。
第一:
{
"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 指定要搜索的字段,然后我通过字段参数指定它。字段名称相同。
我希望这两种变体都能产生相同的结果,但事实并非如此。第一个变体 return 没有任何结果,第二个 return 有结果。那么我在这里做错了什么?陷阱在哪里
弹性搜索 1.4.2
你给字段参数的方式是错误的。
在第二种情况下,您指的是 field params in the query ,您将结果限制为仅显示某些字段而不是整个 _source
以下是您要找的 -
{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "27444.2",
"fields": ["text"]
}
}
}
},
"from": 0,
"size": 50
}
2个查询不一样。
首先搜索字段 'text',然后搜索所有字段,作为响应,仅 returns 'field'。
这里有两个查询。 第一:
{
"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 指定要搜索的字段,然后我通过字段参数指定它。字段名称相同。 我希望这两种变体都能产生相同的结果,但事实并非如此。第一个变体 return 没有任何结果,第二个 return 有结果。那么我在这里做错了什么?陷阱在哪里
弹性搜索 1.4.2
你给字段参数的方式是错误的。 在第二种情况下,您指的是 field params in the query ,您将结果限制为仅显示某些字段而不是整个 _source
以下是您要找的 -
{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "27444.2",
"fields": ["text"]
}
}
}
},
"from": 0,
"size": 50
}
2个查询不一样。 首先搜索字段 'text',然后搜索所有字段,作为响应,仅 returns 'field'。