身安不如心安,屋宽不如心宽 。

输入 “建大业”, 如何能出来 “建国大业” “建军大业” 的数据呢

Elasticsearch | 作者 menzhipeng | 发布于2020年12月26日 | 阅读数:1466

比如我输入 “建大业”, 如何能出来 “建国大业” “建军大业” 的数据呢?
 
·······························································
 
下面算凑字数
已邀请:

w_b

赞同来自: menzhipeng

match_phrase  slop=1

FFFrp

赞同来自: menzhipeng

看你分词器怎么分的,如果建国 建军都是一个词的话只能换单字的分词器,或者删词典,如果建国建军都能分成单字,就用一楼的办法

guoyanbiao520

赞同来自: menzhipeng

单字分词加match_phrase,或者直接添加同义词词典也可以

xiaowuge - 90后

赞同来自: menzhipeng

首先你得使用ngrem做汉字分词,然后再使用match phrase slop=1。
查询语句如下:
{
  "query": {
    "match_phrase": {
      "test":{
        "query": "","slop":"1"
      }
    }
  }
}
 
 
分词器如下:
 "tokenizer": {
          "my_tokenizer": {
            "type": "ngram",
            "min_gram": 1,
            "max_gram": 1
          }
        }

要回复问题请先登录注册