博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Elasticsearch-terms搜索及结果优化
阅读量:4290 次
发布时间:2019-05-27

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

测试数据:

POST /forum/article/_bulk{ "index": { "_id": 1 }}{ "articleID" : "XHDK-A-1293-#fJ3", "userID" : 1, "hidden": false, "postDate": "2017-01-01" }{ "index": { "_id": 2 }}{ "articleID" : "KDKE-B-9947-#kL5", "userID" : 1, "hidden": false, "postDate": "2017-01-02" }{ "index": { "_id": 3 }}{ "articleID" : "JODL-X-1937-#pV7", "userID" : 2, "hidden": false, "postDate": "2017-01-01" }{ "index": { "_id": 4 }}{ "articleID" : "QQPX-R-3956-#aD8", "userID" : 2, "hidden": true, "postDate": "2017-01-02" }POST /forum/article/_bulk{ "update": { "_id": "1"} }{ "doc" : {
"tag" : ["java", "hadoop"]} }{ "update": { "_id": "2"} }{ "doc" : {
"tag" : ["java"]} }{ "update": { "_id": "3"} }{ "doc" : {
"tag" : ["hadoop"]} }{ "update": { "_id": "4"} }{ "doc" : {
"tag" : ["java", "elasticsearch"]} }
  • 搜索articleID=KDKE-B-9947-#kL5或者QQPX-R-3956-#aD8的doc
GET /forum/article/_search{ "query": {   "constant_score": {     "filter": {       "terms": {         "articleID": [           "KDKE-B-9947-#kL5",           "QQPX-R-3956-#aD8"         ]       }     }   } }}
  • 搜索tags中有java的帖子
GET /forum/article/_search{  "query": {    "constant_score": {      "filter": {        "terms": {          "tag": ["java"]        }      }    }  }}
  • 对搜索到的结果进行优化,只想搜索到tag中只有java的doc:
POST /forum/article/_bulk{ "update": { "_id": "1"} }{ "doc" : {"tag_cnt" : 2} }{ "update": { "_id": "2"} }{ "doc" : {"tag_cnt" : 1} }{ "update": { "_id": "3"} }{ "doc" : {"tag_cnt" : 1} }{ "update": { "_id": "4"} }{ "doc" : {"tag_cnt" : 2} }

添加一个字段表示tag中的数量

GET /forum/article/_search{  "query": {    "constant_score": {      "filter": {        "bool": {          "must": [            {              "terms": {                "tag": ["java"]              }            },            {              "term": {                "tag_cnt": 1              }            }          ]        }      }    }  }}

就可以查询出我们想要的结果

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

你可能感兴趣的文章
干货:Java几种线程池的分析和使用。
查看>>
避免在Java接口中使用数组的3个理由
查看>>
android 自定义带动画的统计饼图
查看>>
入职必备,Android 真实面试题(内有答案)
查看>>
JavaScript 日期处理类库---Moment.js
查看>>
仿斗鱼直播的弹幕效果实现
查看>>
Android(Java)中的Object
查看>>
Java反射机制——学习总结
查看>>
Android大图片处理
查看>>
Hadoop平台相关技术
查看>>
Android中热修复框架AndFix原理解析及案例使用
查看>>
手写代码实现EventBus
查看>>
关于JSON的相关知识
查看>>
SpringMVC基础_常用注解
查看>>
Spring框架-IOC容器和Bean的配置(1)
查看>>
查询内容在网页里面分页显示+跳页查看
查看>>
mysql substring函数截取值后赋给一个declare变量
查看>>
Java Thread 的 sleep() 和 wait() 的区别
查看>>
DbUtils入门
查看>>
每一个程序员需要了解的10个Linux命令
查看>>