ElasticSearch第四步-查询详解
2015-04-08 12:24
239 查看
****************************************************************************************
ElasticSearch系列学习
ElasticSearch第二步-CRUD之Sense),且数据都已经使用过IK分词。
以下测试数据来源于文档(db_test/person)
需要注意的是下面的id是文档的ID,不是elasticsearch生成的_id,删除文档需要用_id
注意:must和should并列,should无效
查询所有索引库的数据
查询索引库db_test中的所有数据
说明:db_test代表所有库(db)
查询索引库db_test表person中的所有的数据
说明:db_test代表所有库(db),person代表文档
查询索引库db_test表person中age=3的一条数据
说明:db_test代表所有库(db),person代表文档
POST/db_test/person/_search?q=age:3
//或者这样写(DSL写法)
POST/db_test/person/_search
{
"query":{
"query_string":{
"fields":["age"],
"query":3
}
}
}
多字段单分词字段并且条件查询
查询索引库db_test表person中age从500到800,intro包含"研究"的数据
多字段多分词字段并且分词或者条件
查询索引库db_test表person中age大于500,intro包含"研究"或者"方鸿渐"的数据
分页/排序/高亮显示
说明:size如果不写默认是10,from如果不写默认是0。取前20条数据,按照age升序,生日降序,并且北京高亮显示。
还可以这样写
单字段多分词或者关系查询
说明:查询intro包含"研究"或者"方鸿渐"。
(这在全文检索时非常有用)
第一种写法:
ViewCode
测试查询
查询包含一组id的文档集合
批量操作
说明:可以批量添加数据,详情:http://es.xiaoleilu.com/030_Data/55_Bulk.html
****************************************************************************************
ElasticSearch系列学习
ElasticSearch系列学习
ElasticSearch第一步-环境配置
ElasticSearch第二步-CRUD之Sense
ElasticSearch第三步-中文分词
ElasticSearch第四步-查询详解
ElasticSearch第五步-.net平台下c#操作ElasticSearch详解
************************************************************
注意:以下命令都是使用sense测试(以下测试数据来源于文档(db_test/person)
需要注意的是下面的id是文档的ID,不是elasticsearch生成的_id,删除文档需要用_id
{ "id":"0959ab1c-47bf-4417-904c-e5bc774ce730", "name":"王军华", "age":265, "sex":true, "birthday":"2015-04-07T18:11:35.2655732+08:00", "intro":"介绍" }
注意:must和should并列,should无效
查询所有索引库的数据
POST/_search
查询索引库db_test中的所有数据
说明:db_test代表所有库(db)
POST/db_test/_search
查询索引库db_test表person中的所有的数据
说明:db_test代表所有库(db),person代表文档
POST/db_test/person/_search
查询索引库db_test表person中age=3的一条数据
说明:db_test代表所有库(db),person代表文档
POST/db_test/person/_search?q=age:3
//或者这样写(DSL写法)
POST/db_test/person/_search
{
"query":{
"query_string":{
"fields":["age"],
"query":3
}
}
}
多字段单分词字段并且条件查询
查询索引库db_test表person中age从500到800,intro包含"研究"的数据
POST/db_test/person/_search
{
"query":{
"bool":{
"must":[
{
"range":{
"age":{
"from":"500","to":"800"}
}
},
{
"term":{
"intro":"研究"
}
}]
}
}
}
多字段多分词字段并且分词或者条件
查询索引库db_test表person中age大于500,intro包含"研究"或者"方鸿渐"的数据
POST/db_test/person/_search
{
"query":{
"bool":{
"must":[
{
"range":{
"age":{
"gt":"500"
}
}
},
{
"terms":{
"intro":["研究","方鸿渐"]
}
}]
}
}
}
分页/排序/高亮显示
说明:size如果不写默认是10,from如果不写默认是0。取前20条数据,按照age升序,生日降序,并且北京高亮显示。
POST/db_test/person/_search
{
"query":{
"term":{"intro":"北京"
}
},
"from":0,
"size":20,
"sort":{
"age":{"order":"asc"},
"birthday":{"order":"desc"}
},
"highlight":{
"pre_tags":["<tag1>","<tag2>"],
"post_tags":["</tag1>","</tag2>"],
"fields":{
"intro":{}
}
}
}
还可以这样写
GET/_search?size=5
GET/_search?size=5&from=5
GET/_search?size=5&from=10
单字段多分词或者关系查询
说明:查询intro包含"研究"或者"方鸿渐"。
(这在全文检索时非常有用)
第一种写法:
PUT/db_news
{
"settings":{
"analysis":{
"analyzer":{
"stem":{
"tokenizer":"standard",
"filter":["standard","lowercase","stop","porter_stem"]
}
}
}
},
"mappings":{
"news":{
"dynamic":true,
"properties":{
"title":{
"type":"string",
"indexAnalyzer":"ik",
"searchAnalyzer":"ik"
},
"content":{
"type":"string",
"indexAnalyzer":"ik",
"searchAnalyzer":"ik"
}
}
}
}
}
PUT/db_news/news/1
{
"title":"第一条新闻",
"content":"我爱北京天安门"
}
ViewCode
测试查询
GET/_mget
{
"docs":[
{
"_index":"db_news",
"_type":"news",
"_id":1
},
{
"_index":"db_test",
"_type":"person",
"_id":"5bd94e88-10cb-4e9f-9ba6-df8ff8b59081"
}
]
}
查询包含一组id的文档集合
GET/db_news/news/_mget
{
"ids":["2","1"]
}
批量操作
说明:可以批量添加数据,详情:
POST/_bulk
{"create":{"_index":"db_news","_type":"news","_id":"3"}}
{"title":"john@smith.com","content":"JohnSmith"}
{"create":{"_index":"db_news","_type":"news","_id":"4"}}
{"title":"john@smdsith.com","content":"JohnSmidth"}
****************************************************************************************
ElasticSearch系列学习
ElasticSearch第一步-环境配置
ElasticSearch第二步-CRUD之Sense
ElasticSearch第三步-中文分词
ElasticSearch第四步-查询详解
ElasticSearch第五步-.net平台下c#操作ElasticSearch详解
************************************************************
相关文章推荐
- ElasticSearch第四步-查询详解
- ElasticSearch查询详解
- 54 搜索引擎及Lucene基础、elasticsearch使用基础、ES使用详解、ES查询及Logstash入门
- ElasticSearch使用教程四(ElasticSearch查询详解)
- ElasticSearch使用教程四(ElasticSearch查询详解)
- ElasticSearch查询—分页查询详解
- Elasticsearch(查询详解)
- ElasticSearch详解三之——查询
- ElasticSearch学习 - (七)查询详解
- elasticsearch系列五:搜索详解(查询建议介绍、Suggester 介绍)
- Elasticsearch(查询详解)
- Elasticsearch学习总结四 elasticSearch基本查询详解
- ElasticSearch常用的基本查询语句详解
- ElasticSearch常用的基本查询语句详解
- T-SQL的高级查询详解(一)
- oracle树结构查询----connect by语法详解
- 详解在不同的SQL Server数据库之间查询数据
- sql联合查询详解
- T-SQL的高级查询详解--聚合函数
- SQL查询语句使用详解