29. 误拼写时的fuzzy模糊搜索技术

搜索的时候,可能输入的搜索文本会出现误拼写的情况,这时就需要es为我们进行智能纠错

比如有两个文档:

doc1: hello world

doc2: hello java

   

现在要搜索:hallo world,我们本来是想搜索hello word,但是我们拼写错了,写成hallo word,所以要用到fuzzy搜索技术 :自动将拼写错误的搜索文本,进行纠正,纠正以后去尝试匹配索引中的数据

   

一、准备数据

   

POST /my_index/my_type/_bulk

{ "index": { "_id": 1 }}

{ "text": "Surprise me!"}

{ "index": { "_id": 2 }}

{ "text": "That was surprising."}

{ "index": { "_id": 3 }}

{ "text": "I wasn't surprised."}

   

二、进行搜索

GET /my_index/my_type/_search

{

"query": {

"fuzzy": {

"text": {

"value": "surprize",

"fuzziness": 2

}

}

}

}

   

surprize --> 拼写错误 --> surprise --> s -> z

"fuzziness": 2 表示纠错的最大限度,

   

fuzzy搜索以后,会自动尝试将你的搜索文本进行纠错,然后去跟文本进行匹配

fuzziness,你的搜索文本最多可以纠正几个字母去跟你的数据进行匹配,默认如果不设置,就是2

   

三、也可以用以下语法:

GET /my_index/my_type/_search

{

"query": {

"match": {

"text": {

"query": "SURPIZE ME",

"fuzziness": "AUTO",

"operator": "and"

}

}

}

}

posted @ 2018-03-08 21:04  outback123  阅读(302)  评论(0编辑  收藏  举报