1、match query实现模糊搜索,该方式会对匹配文本进行分词然后匹配分词后的每个词项,匹配操作有OR和AND,默认为OR
{
"query": {
"match": {
"text": {
"query": "hello world",
"fuzziness": "AUTO",
"operator": "and"
}
}
}
}
查询字符串首先进行分析,会产生词项 [hello,world] ,并且每个词项根据指定的 fuzziness 进行模糊化。如果match query所查询的字段为keyword类型则不会进行分词,等同term精确匹配查询。
2、match phase query实现模糊搜索,该方式不会对匹配文本进行分词,能够在text类型的字段上进行数据库like的匹配效果。
{
"query": {
"match_phrase": {
"message": "this is a test"
}
}
}
3、fuzzy query实现模糊搜索,fuzzy 查询是一个词项级别的查询,所以它不做任何分析。它通过某个词项以及指定的 fuzziness 查找到词典中所有的词项。 fuzziness 默认设置为 AUTO 。
{
"query": {
"fuzzy": {
"text": "surprize"
}
}
}
网友评论