我有一个查询,在过滤器上使用通配符会返回结果,但使用结果中的实际文本进行查询会返回0次点击。
这有效
{
"query": {
"filtered": {
"query": { "match_all": { } },
"filter": {
"nested": {
"path": "houses",
"query": {
"filtered": {
"query": { "match_all": { } },
"filter": {
"wildcard": {
"houses.name": "????"
}
}
}
}
}
}
}
}
}
如果它返回一个名为“夏娃花园”的房子,则不返回任何内容。
{
"query": {
"filtered": {
"query": { "match_all": { } },
"filter": {
"nested": {
"path": "houses",
"query": {
"filtered": {
"query": { "match_all": { } },
"filter": {
"wildcard": {
"houses.name": "Eve gardens"
}
}
}
}
}
}
}
}
}
请帮忙!
答案 0 :(得分:1)
请参阅this:
根据您的查询houses.name
似乎是analyzed
字符串,这意味着Eve gardens
会被标记化并存储为eve
,gardens
而不是Eve gardens
1}}作为一个整体。根据文件
通配符查询按术语运行。如果您使用它们来查询分析的字段,它们将检查字段中的每个术语,而不是整个字段。
所以,如果你这样做
"wildcard": {"houses.name": "Eve gardens"}
这不起作用。
尝试
"wildcard": {"houses.name": "eve*"}
它应该取得你的结果。希望这会有所帮助..