主要知识点

terms搜索多个值,并和term的比较

 
 

一、term和terms

terms是在这个字段中搜索多个值,相当于sql中的in语法

(select * from tbl where col in ("value1", "value2"))

  • term: {"field": "value"}
  • terms: {"field": ["value1", "value2"]}

 
 


、terms搜索

1、为帖子数据增加tag字段

 
 

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"]} }

 
 

2、搜索articleID为KDKE-B-9947-#kL5或QQPX-R-3956-#aD8的帖子

GET /forum/article/_search

{

"query": {

"constant_score": {

"filter": {

"terms": {

"articleID": [

"KDKE-B-9947-#kL5",

"QQPX-R-3956-#aD8"

]

}

}

}

}

}

3、搜索tag中包含java的帖子

GET /forum/article/_search

{

"query" : {

"constant_score" : {

"filter" : {

"terms" : {

"tag" : ["java"]

}

}

}

}

}

 
 

三、优化搜索结果,仅仅搜索tag只包含java的帖子

1、先向index插入一条数据,显示tags中字段的个数

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} }

 
 

2、执行搜索语句

GET /forum/article/_search

{

"query": {

"constant_score": {

"filter": {

"bool": {

"must": [

{

"term": {

"tag_cnt": 1

}

},

{

"terms": {

"tag": ["java"]

}

}

]

}

}

}

}

}

 
 

["java", "hadoop", "elasticsearch"]

 
 

三、总结

(1)terms多值搜索用列表的形式表示

(2)优化terms多值搜索的结果,获取我们指定的特定结果集

(3)terms相当于SQL中的in语句

5.terms搜索多个值以及多值搜索结果优化的更多相关文章

  1. 调试台自动多出现一个'' ,我 用uploadify上传图片时,在给页面写入一个返回值为图片名称的变量的值的时候值的前面始终多出现一个''

    对你有助请点赞,请顶,不好请踩------送人玫瑰,手留余香! 15:54 2016/3/12用uploadify上传图片时,在给页面写入一个返回值为图片名称的变量的值的时候值的前面始终多出现一个' ...

  2. javascript中值传递与值引用的研究

    今天重新看了一下<javascript高级程序设计>,其中讲到了javascript中的值传递和值引用,所以就自己研读了一下,但是刚开始没有明白函数中的参数只有值传递,有的场景好像参数是以 ...

  3. 分布式搜索ElasticSearch构建集群与简单搜索实例应用

    分布式搜索ElasticSearch构建集群与简单搜索实例应用 关于ElasticSearch不介绍了,直接说应用. 分布式ElasticSearch集群构建的方法. 1.通过在程序中创建一个嵌入es ...

  4. 浅谈asp.net通过本机cookie仿百度(google)实现搜索input框自己主动弹出搜索提示

    对于通过用户输入关键词实现自己主动弹出相关搜索结果,这里本人给两种解决方式,用于两种不同的情形. 常见方法是在数据库里建一个用户搜索关系表,然后通过用户搜索框输入的keyword异步调用数据表中的相关 ...

  5. 恕我直言,你可能连 GitHub 搜索都不会用 - 如何精准搜索的神仙技巧

    大家好,我是你们的 前端章鱼猫,一个不喜欢喵.又不喜欢吃鱼的超级猫 ~ 今天给大家带来的是 在 GitHub 上如何精准搜索的神仙技巧. [前端GitHub:https://github.com/bi ...

  6. EF里查看/修改实体的当前值、原始值和数据库值以及重写SaveChanges方法记录实体状态

    本文目录 查看实体当前.原始和数据库值:DbEntityEntry 查看实体的某个属性值:GetValue<TValue>方法 拷贝DbPropertyValues到实体:ToObject ...

  7. Android搜索功能的案例,本地保存搜索历史记录......

    开发的APP有一个搜索功能,并且需要显示搜索的历史记录,我闲暇之余帮她开发了这个功能,现把该页面抽取成一个demo分享给大家. 实现效果如图所示:  本案例实现起来很简单,所以可以直接拿来嵌入项目中使 ...

  8. Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence

    Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence 使用oracle11g插入数据时遇到这样一个问题: 1 --创建测试表-- 2 CREATE T ...

  9. c++左值和右值

    c++编程中如果出现把一个函数的返回值.强行转化后的对象 作为函数的参数传进去时,编译器会报错的情况.这时候就该注意了,你需要把该函数的参数类型前加上const修饰. 原因在于c++的左值和右值有所区 ...

随机推荐

  1. rel='canonical'

    rel='canonical' <!DOCTYPE html><html><head> <meta charset="utf-8"/> ...

  2. ALSA声卡驱动中的DAPM详解之五:建立widget之间的连接关系

    前面我们主要着重于codec.platform.machine驱动程序中如何使用和建立dapm所需要的widget,route,这些是音频驱动开发人员必须要了解的内容,经过前几章的介绍,我们应该知道如 ...

  3. git命令颜色设置

    + $ git config --global color.status auto + $ git config --global color.diff auto + $ git config --g ...

  4. C语言strdup()函数:复制字符串【转】

    本文转载自:http://c.biancheng.net/cpp/html/166.html 头文件:#include <string.h> 定义函数:char * strdup(cons ...

  5. IOS系统控件高度

    以下是常见的几种控件的高度.Statusbar,Navigationbar和Tabbar的宽度极其图标大小. 下表是更为详细的参数,包括了Statusbar,Navigationbar.Tabbar. ...

  6. 【关键字】volatile

    volatile 修饰的关键字,确保编译器不对成员变量进行任何优化: private volatile double d; // No optimization

  7. bzoj 3944 Sum —— 杜教筛

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3944 杜教筛入门题! 看博客:https://www.cnblogs.com/zjp-sha ...

  8. LIBTOOL is undefined 问题的解决方法

    configure.ac:10: error: possibly undefined macro: AC_PROG_LIBTOOL If this token and others are legit ...

  9. codeforces round #427 div2

    A:读懂题,乘一下判断大小就行了 #include<bits/stdc++.h> using namespace std; int main() { int s, v1, v2, t1, ...

  10. 56. EditorGridPanel和渲染器renderer的使用

    转自:https://blog.csdn.net/chenkangwan/article/details/4748716?utm_source=blogxgwz6 1. 在EditorGriddPan ...