The requested URL was not found on this server. 不管你信不信,反正我是没找到

text字段类型能否做前后模糊查询

Elasticsearch | 作者 ydzll | 发布于2019年07月23日 | 阅读数:6166

比如文档中某个类型为text的字段值为"like baidu",我现在想查询时输入"ke",来命中这条文档,有没有什么技术去实现呢?
我只知道wildcard可以实现,但是这个是针对keyword类型,如果用text,该怎么做呢?
已邀请:

ridethewind

赞同来自:

模糊匹配为啥不用keyword啊
你用text需要看内容怎么分的词

ydzll

赞同来自:

就拿百度来说,很多时候我们输入的字符,并不是一个完整的词,比如我们只输入了一个school里的ch,就能搜到,而且命中的这个字段是个很长的文章,很可能也是text类型,这是怎么做到的呢?

ydzll

赞同来自:

如果我之前举得例子,都能用wildcard去实现,那我现在换个例子,比如有个值为like shcool,我现在输入ik hc,也想命中这条数据,有没有什么办法呢?就是先分词,再把每个词去做模糊匹配。

bellengao - 博客: https://www.jianshu.com/u/e0088e3e2127

赞同来自:

使用fuzziness模糊匹配{
  "query": {
    "match": {
      "a": {
        "query": "ke",
        "fuzziness": "2"
      }
    }
  }
}

ydzll

赞同来自:

微信截图_20190723192415.png

输入ik能命中结果,输入k,或者输入sch,或者ch,都无法命中

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

考虑下换分词,或者多分词类型组合,考虑下ngram实现

hufuman

赞同来自:

ngram或者standard保证能搜索到数据,ik等分词器做加分,是否使用fuzzyness取决于你的数据量

要回复问题请先登录注册