博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Elasticsearch-前缀、通配符、正则、模糊搜索详解
阅读量:4291 次
发布时间:2019-05-27

本文共 979 字,大约阅读时间需要 3 分钟。

1.对于前缀的匹配搜索:

GET /forum/article/_search{  "query": {    "prefix": {      "articleID": {        "value": "J"      }    }  }}

prefix的匹配一般是处理不分词的场景,将会匹配articleID中以”J”开头的doc。prefix不会计算revelance score,只是作一个过滤的操作,和filter唯一的区别是filter会缓存结果,而prefix不会。前缀越短要处理的doc越多,性能越差。


2.对于通配符的搜索:

GET /forum/article/_search{  "query": {    "wildcard": {      "content": {        "value": "*k"      }    }  }}

?会匹配任意字符,*会匹配0个或多个字符。性能根prefix一样差,必须要扫描整个倒排索引。


3.对于正则的搜索:

GET /forum/article/_search{  "query": {    "regexp":{      "content":"thi[n]."    }  }}

[0-9]:指定范围内的数字

[a-z]:指定范围内的字幕
.:一个字符
+:前面的正则表达式可以出现一次或多次

正则的搜索同样会扫描全表,性能也会很差


4.对于模糊搜索:

GET /forum/article/_search{  "query": {    "fuzzy": {      "author_first_name": {        "value": "tony",        "fuzziness": 2      }    }  }}

fuzziness参数调整纠正的次数

通常不会直接用上述搜索,而会用下面的搜索:

GET /forum/article/_search{  "query": {    "match": {      "author_first_name": {        "query": "tonyn",        "fuzziness": "AUTO",        "operator": "and"      }    }  }}

转载地址:http://fqrgi.baihongyu.com/

你可能感兴趣的文章
GDB调试命令
查看>>
常见数据类型的字节数
查看>>
gcc/g++ 编译常见问题
查看>>
【设计模式】 工厂模式实例 C++ , 利用工厂模式写一个计算器
查看>>
opencv
查看>>
【图像处理】 一、OSTU分割
查看>>
Android常用的框架有哪些
查看>>
SSL 证书创建与部署
查看>>
学习搭建人工智能环境遇到的问题
查看>>
自己编写的计算器
查看>>
视频物体检测
查看>>
Tomcat启动遇到的问题
查看>>
Gradle-gradlew
查看>>
grpc-整合gradle与代码生成
查看>>
grpc-gradle与grpc流程完美整合(3)
查看>>
设计模式-装饰模式(Decorator)
查看>>
git-子模块submodule
查看>>
设计模式-策略模式(Strategy)
查看>>
设计模式-观察者模式(Observer)
查看>>
java浅拷贝(shallow clone)与深拷贝(deep clone)
查看>>