elasticsearch 弹性搜索通配符查询按文本查询不工作
我有一个查询,其中在筛选器上使用通配符返回结果,但使用结果中的实际文本执行查询返回0个命中 这很有效elasticsearch 弹性搜索通配符查询按文本查询不工作,elasticsearch,elasticsearch,我有一个查询,其中在筛选器上使用通配符返回结果,但使用结果中的实际文本执行查询返回0个命中 这很有效 { "query": { "filtered": { "query": { "match_all": { } }, "filter": { "nested": { "path": "houses", "query": { "filtered": { "query": { "match_all": { } },
{
"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"
}
}
}
}
}
}
}
}
}
请帮忙 见:
根据您的查询,houses.name
似乎是一个分析的
字符串,这意味着Eve gardens
将被标记并存储为Eve
,gardens
而不是整个Eve gardens
。根据文件
通配符查询根据术语进行操作。如果使用它们来查询已分析的字段,它们将检查字段中的每个术语,而不是整个字段
所以如果你这样做了
"wildcard": {"houses.name": "Eve gardens"}
这是行不通的
试一试
它应该会给你带来结果。希望这有帮助。请参阅:
根据您的查询,houses.name
似乎是一个分析的
字符串,这意味着Eve gardens
将被标记并存储为Eve
,gardens
而不是整个Eve gardens
。根据文件
通配符查询根据术语进行操作。如果使用它们来查询已分析的字段,它们将检查字段中的每个术语,而不是整个字段
所以如果你这样做了
"wildcard": {"houses.name": "Eve gardens"}
这是行不通的
试一试
它应该会给你带来结果。希望这有帮助。很抱歉耽搁了。非常感谢。抱歉耽搁了。非常感谢。