高峰只对攀登它而不是仰望它的人来说才有真正意义。

以空格区分多个关键词进行搜索

Elasticsearch | 作者 qwj | 发布于2020年02月06日 | 阅读数:514

如果我想搜索一篇文章,关键词是"安全 管理",那么出来的文章是包含"安全"和"管理"的
 
利用中文分词器使用matchQuery进行分词搜索,会使得不带空格的也会被分隔进行搜索
 
如果我只是希望以空格分隔进行多个关键词搜索该如何做到?
已邀请:

trycatchfinal

赞同来自: qwj

{
"match_phrase" : {
"message" : {
"query" : "安全 管理",
"analyzer" : "whitespace"
}
}
}

vanclsky - elasticsearch新手

赞同来自:

个人理解你的问题在于:如何取消中文分词器对搜索词的分词,比如搜索“安全管理”则“安全管理手册”会被召回,而“安全和管理手册”不会被召回。这种情况下可以使用matchPhrase查询:
GET lianshang/_search
{
"query": {
"match_phrase": {
"title": "安全管理"
}
}
}

要回复问题请先登录注册