上面的方法名将被转换为下面的Elasticsearch json查询
{
“query”: {
“bool” : {
“must” : [
{ “query_string” : { “query” : “?”, “fields” : [ “name” ] } },
{ “query_string” : { “query” : “?”, “fields” : [ “price” ] } }
]
}
}
}
Elasticsearch支持的关键字列表如下所示。
*表1:方法名称中支持的关键字*
| 关键字 | 例子 | Elasticsearch查询字符串 |
| --- | --- | --- |
| And | findByNameAndPrice | { “query” : {“bool” : {“must” : [{ “query\_string” : { “query” : “?”, “fields” : [ “name” ] } },{“query\_string” : { “query” : “?”, “fields” : [ “price” ] } }]}}} |
| Or | findByNameOrPrice | {“query”:{“bool”:{“should”:[{“query\_string”:{“query”:“?”,“fields”:[“name”]}},{“query\_string”:{“query”:“?”,“fields”:[“price”]}}]}}} |
| Is | findByName | {“query”:{“bool”:{“must”:[{“query\_string”:{“query”:“?”,“fields”:[“name”]}}]}}} |
| Not | findByNameNot | {“query”:{“bool”:{“must\_not”:[{“query\_string”:{“query”:“?”,“fields”:[“name”]}}]}}} |
| Between | findByPriceBetween | {“query”:{“bool”:{“must”:[{“range”:{“price”:{“from”:“?”,“to”:“?”,“include\_lower”:true,“include\_upper”:true}}}]}}} |
| LessThan | findByPriceLessThan | {“query”:{“bool”:{“must”:[{“range”:{“price”:{“from”:null,“to”:“?”,“include\_lower”:true,“include\_upper”:false}}}]}}} |
| LessThanEqual | findByPriceLessThanEqual | {“query”:{“bool”:{“must”:[{“range”:{“price”:{“from”:null,“to”:“?”,“include\_lower”:true,“include\_upper”:true}}}]}}} |
| GreaterThan | findByPriceGreaterThan | {“query”:{“bool”:{“must”:[{“range”:{“price”:{“from”:“?”,“to”:null,“include\_lower”:false,“include\_upper”:true}}}]}}} |
| GreaterThanEqual | findByPriceGreaterThanEqual | {“query”:{“bool”:{“must”:[{“range”:{“price”:{“from”:“?”,“to”:null,“include\_lower”:true,“include\_upper”:true}}}]}}} |
| Before | findByPriceBefore | {“query”:{“bool”:{“must”:[{“range”:{“price”:{“from”:null,“to”:“?”,“include\_lower”:true,“include\_upper”:true}}}]}}} |
| After | findByPriceAfter | {“query”:{“bool”:{“must”:[{“range”:{“price”:{“from”:“?”,“to”:null,“include\_lower”:true,“include\_upper”:true}}}]}}} |
| Like | findByNameLike | {“query”:{“bool”:{“must”:[{“query\_string”:{“query”:“?\*”,“fields”:[“name”]},“analyze\_wildcard”:true}]}}} |
| StartingWith | findByNameStartingWith | {“query”:{“bool”:{“must”:[{“query\_string”:{“query”:“?\*”,“fields”:[“name”]},“analyze\_wildcard”:true}]}}} |
| EndingWith | findByNameEndingWith | {“query”:{“bool”:{“must”:[{“query\_string”:{“query”:“\*?”,“fields”:[“name”]},“analyze\_wildcard”:true}]}}} |
| Contains/Containing | findByNameContaining | {“query”:{“bool”:{“must”:[{“query\_string”:{“query”:“*?*”,“fields”:[“name”]},“analyze\_wildcard”:true}]}}} |
| In (when annotated as FieldType.Keyword) | findByNameIn(Collection<String> names) | {“query”:{“bool”:{“must”:[{“bool”:{“must”:[{“terms”:{“name”:[“?”,“?”]}}]}}]}}} |
| In | findByNameIn(Collection<String> names) | { “query”: {“bool”: {“must”: [{“query\_string”:{“query”: “”?" “?”", “fields”: [“name”]}}]}}} |
| NotIn (when annotated as FieldType.Keyword) | findByNameNotIn(Collection<String> names) | {“query”:{“bool”:{“must”:[{“bool”:{“must\_not”:[{“terms”:{“name”:[“?”,“?”]}}]}}]}}} |
| NotIn | findByNameNotIn(Collectionnames) | {“query”: {“bool”: {“must”: [{“query\_string”: {“query”: “NOT(”?" “?”)", “fields”: [“name”]}}]}}} |
| True | findByAvailableTrue | {“query”:{“bool”:{“must”:[{“query\_string”:{“query”:“true”,“fields”:[“available”]}}]}}} |
| False | findByAvailableFalse | {“query”:{“bool”:{“must”:[{“query\_string”:{“query”:“false”,“fields”:[“available”]}}]}}} |
| OrderBy | findByAvailableTrueOrderByNameDesc | {“query”:{“bool”:{“must”:[{“query\_string”:{“query”:“true”,“fields”:[“available”]}}]}},“sort”:[{“name”:{“order”:“desc”}}]} |
| Exists | findByNameExists | {“query”:{“bool”:{“must”:[{“exists”:{“field”:“name”}}]}}} |
| IsNull | findByNameIsNull | {“query”:{“bool”:{“must\_not”:[{“exists”:{“field”:“name”}}]}}} |
| IsNotNull | findByNameIsNotNull | {“query”:{“bool”:{“must”:[{“exists”:{“field”:“name”}}]}}} |
| IsEmpty | findByNameIsEmpty | {“query”:{“bool”:{“must”:[{“bool”:{“must”:[{“exists”:{“field”:“name”}}],“must\_not”:[{“wildcard”:{“name”:{“wildcard”:“\*”}}}]}}]}}} |
| IsNotEmpty | findByNameIsNotEmpty | {“query”:{“bool”:{“must”:[{“wildcard”:{“name”:{“wildcard”:“\*”}}}]}}} |
不支持使用GeoJson参数构建Geo-shape查询的方法名。如果您需要在存储库中拥有这样的函数,请在自定义存储库实现中使用ElasticsearchOperations和CriteriaQuery。
## 三、方法返回类型
存储库方法可以定义为具有以下返回类型以返回多个元素:
* List<T>
* Stream<T>
* SearchHits<T>
* List<SearchHit<T>>
* Stream<SearchHit<T>>
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/47519f5f1f42657a3eef3e4a97818f39.png)
![img](https://img-blog.csdnimg.cn/img_convert/0fee4807f88ed3d974f0323b08105d44.png)
![img](https://img-blog.csdnimg.cn/img_convert/ec669c3fba131d4b84abbecd995b64e5.png)
![img](https://img-blog.csdnimg.cn/img_convert/9e597b785713c2c103672f79487f2ed4.png)
![img](https://img-blog.csdnimg.cn/img_convert/de72832db9fe789bacd4ab66c7de20d8.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**
![img](https://img-blog.csdnimg.cn/img_convert/a3c2ee39b277590ee57d3f068b3dd745.jpeg)
*如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**
[外链图片转存中...(img-7GQzTK59-1712547336542)]