Elasticsearch Search API
2021-05-16 14:28
标签:xxx 字符串处理。 blank title imp 支持 基本语法 href mat 前面的文章中主要介绍了Elasticsearch的安装及基本的CRUD操作,在使用Elasticsearch的时候,大部分是使用他的搜索,本次我们就来了解更多搜索的API。 这种方式用得不多,一般用得比较多的是Request Body Search。 URI Search可以使用GET,也可以使用POST,基本的语法如下 一些例子 会进行分词匹配,可以指定operator,可选值(and or not),默认是or slop等同于上面的近似查询“~1”。短语匹配,类似SQL中的like,但可以设置slop实现近似匹配,表示移动多少个词可以进行匹配。 比如有文本“beautiful mind people”,搜索短语“people beautiful”需要移动3次才能匹配(beautiful第一次移到mind那个位置,第二次移到people那个位置,第三次移到people的后面);而搜索短语“beautiful people”需要移动1次就能匹配。 query中的语法支持逻辑符合(AND OR NOT) 类似query_string,但会忽略错误的语法。 query中不支持“AND OR NOT”,会被当做字符串处理。支持的逻辑处理是“+ | -”,分别代表“AND OR NOT” 可以指定default_operator,支持AND OR。 query中的逻辑处理与default_operator的逻辑符合一起用,会以query中的逻辑处理为准。 Elasticsearch Search API 标签:xxx 字符串处理。 blank title imp 支持 基本语法 href mat 原文地址:https://www.cnblogs.com/powercto/p/14460511.html前言
URI Search
GET /
# 查询的索引是movies,profile=true相当于MySQL的explain,df指定查询的字段,q指定查询的内容,from从第几条开始,size返回多少条,sort指定排序规则(可选值asc desc),timeout指定搜索的超时时间
GET movies/_search?q=2012&df=title&from=0&size=3&sort=movieId:desc&timeout=1s
{
"profile": "true"
}
# 对q+dp的简化方式,查询title字段,值为2012的文档
GET movies/_search?q=title:2012
# 括号内可以文本会进行分词搜索,默认是OR,可以使用AND,还可以使用“+ -”(“+”要用“%2B”进行转义),“+”表示必须有,“-”必须没有
GET movies/_search?q=title:(beautiful mind)
GET movies/_search?q=title:(beautiful AND mind)
GET movies/_search?q=title:(%2Bbeautiful %2Bmind)
# 范围查询
GET movies/_search?q=movieId:>1900
GET movies/_search?q=movieId:[2 TO 5]
# 正则匹配
GET movies/_search?q=title:beauti*
GET movies/_search?q=title:beau*ful
# 近似查询,“~2”与下文中match_phrase的“slop 2”一致,具体含义参考下文
GET movies/_search?q=title:"Corrupt beautiful"~2
Request Body Search
基本语法
GET movies/_search
{
"profile": "true",
"_source": ["movieId", "title","genres"],
"sort": [{"movieId": "desc"}],
"from": 0,
"size": 3,
"query": {
"match_all": {}
}
}
match
GET movies/_search
{
"profile": "true",
"_source": ["movieId", "title","genres"],
"sort": [{"movieId": "desc"}],
"from": 0,
"size": 3,
"query": {
"match": {
"title":{
"query":"beautiful mind",
"operator": "or"
}
}
}
}
match_phrase
GET movies/_search
{
"query": {
"match_phrase": {
"title":{
"query":"beautiful mind",
"slop": 1
}
}
}
}
query_string
GET movies/_search
{
"query": {
"query_string": {
"default_field": "title",
"query": "(beautiful AND mind) OR (beautiful AND people)"
}
}
}
simple_query_string
GET movies/_search
{
"profile": "true",
"query": {
"simple_query_string": {
"query": "beautiful mind",
"fields": ["title"]
}
}
}
GET movies/_search
{
"profile": "true",
"query": {
"simple_query_string": {
"query": "beautiful +mind",
"fields": ["title"]
}
}
}
参考资料
上一篇:元数据管理—动态表单设计器在crudapi系统中完整实现
下一篇:C#面试题总结
文章标题:Elasticsearch Search API
文章链接:http://soscw.com/index.php/essay/86285.html