共计 1401 个字符,预计需要花费 4 分钟才能阅读完成。
前言
Elasticsearch 是一个十分风行的搜索引擎,曾经成为了许多企业的首选解决方案。然而,咱们要想成为一个优良的程序员,就必须把握各种查问技巧。本文将向大家介绍 10 个实用的 Elasticsearch 查问技巧,并配上具体的代码示例,帮忙咱们更好地把握 Elasticsearch 的查问语法。
示例
1. 匹配多个词语:
应用 bool 查问和 must 子句能够匹配多个词语。例如,匹配同时蕴含“apple”和“banana”的文档:
{ | |
"query": { | |
"bool": { | |
"must": [{ "match": { "text": "apple"}}, | |
{"match": { "text": "banana"}} | |
] | |
} | |
} | |
} |
2. 匹配某个字段中的任意一个词:
应用 terms 查问和字段名能够匹配某个字段中的任意一个词。例如,匹配 title 字段中蕴含“apple”或“banana”的文档:
{ | |
"query": { | |
"terms": {"title": ["apple", "banana"] | |
} | |
} | |
} |
3. 匹配某个字段中的词语前缀:
应用 prefix 查问和字段名能够匹配某个字段中的词语前缀。例如,匹配 title 字段中以“app”结尾的文档:
{ | |
"query": { | |
"prefix": {"title": "app"} | |
} | |
} |
4. 匹配某个字段中的词语通配符:
应用 wildcard 查问和字段名能够匹配某个字段中的词语通配符。例如,匹配 title 字段中蕴含“app”或“ban”的文档:
{ | |
"query": { | |
"wildcard": {"title": "*app* OR ban*"} | |
} | |
} |
5. 匹配某个字段中的词语含糊匹配:
应用 fuzzy 查问和字段名能够进行词语含糊匹配。例如,匹配 title 字段中相似于“aple”的文档:
{ | |
"query": { | |
"fuzzy": {"title": "aple"} | |
} | |
} |
6. 匹配某个字段中的词语范畴:
应用 range 查问和字段名能够匹配某个字段中的词语范畴。例如,匹配 price 字段在 10 到 100 之间的文档:
{ | |
"query": { | |
"range": { | |
"price": { | |
"gte": 10, | |
"lte": 100 | |
} | |
} | |
} | |
} |
7. 匹配某个字段中的词语存在与否:
应用 exists 查问和字段名能够匹配某个字段中的词语是否存在。例如,匹配蕴含 description 字段的文档:
{ | |
"query": { | |
"exists": {"field": "description"} | |
} | |
} |
8. 依照某个字段排序:
应用 sort 参数能够依照某个字段进行排序。例如,依照 score 字段从高到低排序:
{ | |
"query": {"match_all": {} | |
}, | |
"sort": [{ "score": "desc"} | |
] | |
} |
9. 返回某些字段的局部数据:
应用 \_source 参数能够返回某些字段的局部数据。例如,只返回 title 和 price 字段的数据:
{ | |
"query": {"match_all": {} | |
}, | |
"_source": ["title", "price"] | |
} |
10. 进行分页操作:
应用 from 和 size 参数能够进行分页操作。例如,返回第 11-20 条数据:
{ | |
"query": {"match_all": {} | |
}, | |
"from": 10, | |
"size": 10 | |
} |
结尾
如果感觉对你有帮忙,能够多多评论,多多点赞哦,也能够到我的主页看看,说不定有你喜爱的文章,也能够顺手点个关注哦,谢谢。
我是不一样的科技宅,每天提高一点点,体验不一样的生存。咱们下期见!