Elasticsearch-对一个field进行多值全文本搜索
来源:互联网 发布:网络社区营销什么意思 编辑:程序博客网 时间:2024/04/30 02:15
添加测试数据:
POST /forum/article/_bulk{ "update": { "_id": "1"} }{ "doc" : {"title" : "this is java and elasticsearch blog"} }{ "update": { "_id": "2"} }{ "doc" : {"title" : "this is java blog"} }{ "update": { "_id": "3"} }{ "doc" : {"title" : "this is elasticsearch blog"} }{ "update": { "_id": "4"} }{ "doc" : {"title" : "this is java, elasticsearch, hadoop blog"} }{ "update": { "_id": "5"} }{ "doc" : {"title" : "this is spark blog"} }
- 搜索title中包含java或者elasticsearch的doc,这个不是之前的term搜索,而是full text的全文检索:
GET /forum/article/_search{ "query": { "match": { "title": "java elasticsearch" } }}
- 如果我们想搜索即包含java也包含elasticsearch的doc,那么我们可以执行:
GET /forum/article/_search{ "query": { "match": { "title": { "query": "java elasticsearch", "operator": "and" } } }}
- 如果我们想搜索包含java,elasticsearch,spark,hadoop中至少3条的结果:
GET /forum/article/_search{ "query": { "match": { "title": { "query": "java elasticsearch hadoop spark", "minimum_should_match":"75%" } } }}
如果使用bool可以用以下搜索条件,should默认是可以一个都不匹配:
GET /forum/article/_search{ "query": { "bool": { "should": [ { "match": { "title": "java" } }, { "match": { "title": "elasticsearch" } }, { "match": { "title": "hadoop" } }, { "match": { "title": "spark" } } ], "minimum_should_match": 3 } }}
实际上,使用诸如上面的match query进行多值搜索的时候,es底层会自动将这个match query转换成bool的语法
例如:
{ "query": { "match": { "title": "java elasticsearch" } }}
会转换成:
GET /forum/article/_search{ "query": { "bool": { "should": [ { "term": { "title": { "value": "java" } } }, { "term": { "title": { "value": "elasticsearch" } } } ] } }}
需要注意关键的一步是,两者之间唯一不同的是match使用了对搜索参数分词的处理,如果直接使用term将不会对搜索参数进行分词处理
阅读全文
0 0
- Elasticsearch-对一个field进行多值全文本搜索
- 全文搜索之 Elasticsearch
- [Elasticsearch] 全文搜索
- [Elasticsearch] 全文搜索
- 全文搜索之 Elasticsearch
- [Elasticsearch] 全文搜索 (三)
- elasticsearch全文搜索
- Lucene实战(三)多Field搜索,并且对搜索结果进行过滤和[自定义]排序
- 使用DB2 Text Search进行全文本搜索pdf
- mysql全文本搜索
- 全文本搜索
- 全文本搜索
- 数据库学习--全文本搜索
- MySQL的全文本搜索
- 全文本搜索 (For MySQL)
- MySQL全文本搜索Hello
- [My SQL] 全文本搜索
- 18 使用全文本搜索
- 【Web开发】Servlet&Jsp
- 欢迎使用CSDN-markdown编辑器
- 数据库开发技术 课堂笔记2
- 递归
- Lintcode120 Word Ladder solution 题解
- Elasticsearch-对一个field进行多值全文本搜索
- bash shell : pssh批量启停Tomcat服务
- javascript封装滑块
- 四.Spring的schema模板
- 健食园公众号上线了——以健康养生为主题的社交分享购物平台
- membercache使用笔记
- Bypass_safedog_Sql注入
- Javascript实现的一个简单的弹幕效果-入门版
- GetCurrentThread的伪句柄陷阱