【发布时间】:2016-09-19 16:19:35
【问题描述】:
我想通过elasticsearch 2.3 使用其官方PHP 客户端来使用通配符搜索。
我遇到了这样的问题:
案例 1. 当我搜索词 wood 时,它会返回包含 woodman、hollywood 和 hollywoodbolly 的词。
案例 2。但是当我搜索 hollywood 时,它不会返回其中包含 hollywood 的单词。
但是,在这样的查询字符串中完成时一切正常:
"query" => [
"query_string" => [
"query" => "*$keyword*",
"analyze_wildcard" => true,
"fields" => $fields
]
],
但是当像下面这样使用时,案例 2 不起作用:
"query" => [
"bool" => [
"must" => [
[
"wildcard" => [
'name' => "*$keyword*",
]
],
[
"nested" => [
"path" => "address",
"score_mode" => "max",
"query" => [
"bool" => [
"must" => [..match[] parameters..]
]
]
]
]
]
]
我不确定我做错了什么。请帮忙。
编辑:
注意:我已将该字段设置为未分析。
我的查询在搜索 card 时返回 cardboard,但在搜索 cardboard 时未返回 cardboard p>
谢谢。
【问题讨论】:
标签: php elasticsearch