不为失败找理由,要为成功找方法。

elasticsearch中match无法进行匹配查询(匹配查询match查不结果)

Elasticsearch | 作者 d345404748 | 发布于2021年03月29日 | 阅读数:8443

es中有些数据名字=王者荣耀、国王争霸、王者三国杀,然后match查询,在本地是可以查询的(本地版本7),在线上就查找不出来,只能完整输入才行(2.2.1),本人是小白想知道问题会出现在哪,谢谢。第一张图在本地查询,第二张为线上,线上只能完整输入name才能查到,做不到分词查询。(name和eg_name不同不影响)
 
Snipaste_2021-03-24_19-34-11.jpg Snipaste_2021-03-24_19-36-43.jpg
已邀请:

zmc - ES PAAS、JuiceFS

赞同来自: febmark momo675 shengtu0328

确认一下词库还有分词器是不是一样的。
 
或者先看下词库,执行一下_analyze,看看能拆分成什么词(比如,拆分出来有“王”,那就通过“王”可以查到)
 
如果是ik分词器,如下,其他分词器改一下参数就行
 
GET _analyze
{
  "analyzer": "ik_smart"/“ik_max_word”,
  "text": "王者三国杀"
}
 

tangjw

赞同来自:

1:先确定生产和本地 你这个索引的mapping文件是否一致(怀疑字段类型不一致)

2:如果1排查没问题,那么看分词器分词结果

个人估计这种问题 一般mapping都不一样
 

Slient

赞同来自:

我也遇到了match匹配不到文档的问题能帮忙看下吗?
我想匹配姓名“张三”和“李四”但是返回的是空的。
 

guoyanbiao520

赞同来自:

说明线上的字段类型不是text类型,而是keyword类型~~~

要回复问题请先登录注册