提问要多花一点心思哦

es 多字段的搜索

Elasticsearch | 作者 hello | 发布于2016年05月03日 | 阅读数:6355

'multi_match' => [
                    'query'    => $keyword,
                    'fields'   => $indexfields,
                    "operator" => "and",
                ],
$indexfields =['name','address','part'];
 
name,address进行了ik分词,
part没有进行分词
 
现在有一条记录  name:小明  address:北京市小区
 
我搜  小明小区  的时候匹配不到文档,
请问,怎样写query可以匹配到文档
已邀请:

helloes

赞同来自:

应该是你分词器设置有问题,mapping有没有指定分词器?比如:
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"

qq123 - 90后IT精英

赞同来自:

 QueryBuilder query= QueryBuilders.multiMatchQuery(value
                ,"company.un"
                ,"company.cn"
                )

Scs

赞同来自:

https://www.elastic.co/guide/e ... .html 
 
It is not useful to mix not_analyzed fields with analyzed fields in multi_match queries.
 
不能同时对 analyzed 和 not_analyzed 的 field 进行 multi_match 查询(跨字段查询,或者也可以理解为多字段查询)
 
建议把 not_analyzed 的 field 改成 analyzed 类型,然后 analyzer 设置成 Keyword Analyzer,你可以试一下,看看这样子能不能满足你的需求

要回复问题请先登录注册