0
我想使用通配符搜索使用弹性搜索2.3使用其官方PHP客户端。弹性搜索2.3通配符查询不返回完全匹配结果
我面临的一个问题是这样的:
案例1.当我搜索词木,则返回其是具有樵夫,好莱坞和hollywoodbolly的话。
案例2.但是,当我搜索好莱坞,它不返回有好莱坞在他们的话。
"query" => [
"query_string" => [
"query" => "*$keyword*",
"analyze_wildcard" => true,
"fields" => $fields
]
],
但像follwing使用时,第2种情况不工作:
然而,在查询字符串做过这样的时候一切正常
"query" => [
"bool" => [
"must" => [
[
"wildcard" => [
'name' => "*$keyword*",
]
],
[
"nested" => [
"path" => "address",
"score_mode" => "max",
"query" => [
"bool" => [
"must" => [..match[] parameters..]
]
]
]
]
]
]
我不知道我我做错了。请帮忙。
编辑:
注意:我已经做了现场为not_analysed。
寻找卡时,但对于纸板
由于搜索时不返回纸板我的查询返回纸板。
我所做的字段作为not_analysed ' '名'=> [ “类型”=> “字符串”, “指数”=> “not_analyzed”, ]' 但还是没能做到它。 –
我的查询在返回**纸板**时搜索**卡**,但不返回**卡纸**搜索**纸板**时。 –
你确定该字段被映射为'not_analyzed'吗?检查'/ _mapping'端点以确保。我只是测试它,我可以使用通配符查询在字段名称为'cardboard'的情况下搜索'* cardboard *'并获得正确的结果。 –