在 Elasticsearch 中进行模糊搜索通常使用 Fuzzy Query。Fuzzy Query 可以匹配与搜索项类似但不完全相同的词语,是最基本的近似查询。可以按以下方式在 Elasticsearch 中进行模糊搜索:
GET /_search
{
"query": {
"fuzzy": {
"text": {
"value": "seach_term",
"fuzziness": "2"
}
}
}
}
在这个例子中,“text”是你要搜索的字段, “seach_term”是你输入的搜索项, “fuzziness”指定查询的容忍度,即相似度。
GET /_search
{
"query": {
"fuzzy": {
"text": {
"value": "seach_term",
"fuzziness": "2"
}
}
},
"highlight": {
"fields": {
"text": {}
}
}
}
在这个例子中,“highlight”部分指定了你要高亮的文本字段, Elasticsearch 将返回一个带有高亮标记的结果集。
需要注意的是,“fuzziness”的值越大,就越容易匹配到与搜索项类似但不完全相同的词。但同时也会使搜索时间变长。因此,需要根据实际情况来确定它的值。