elasticsearch2.1.0 curl 相关操作命令(二)
2017-12-19 18:47
417 查看
(1)查看gb索引下的tweet类型的所有字段的映射 curl -XGET 'http://10.4.30.151:9200/gb/_mapping/tweet?pretty' curl -XGET 'http://10.4.30.151:9200/my_store/_mapping/products?pretty' curl -XGET 'http://10.4.30.151:9200/megacorp/_mapping/employee?pretty' 可以为已存在的mapping添加一个属性,不需要列出已存在的其他属性。但是不能修改一个已经存在的属性 curl -XPUT 'http://10.4.30.151:9200/megacorp/_mapping/employee?pretty' -H 'Content-Type: application/json' -d'{ "properties" : { "yujie_tag" : { "type" : "string", "index": "not_analyzed" } } }' 性能差异编辑 过滤查询(Filtering queries)只是简单的检查包含或者排除,这就使得计算起来非常快。 考虑到至少有一个过滤查询(filtering query)的结果是 “稀少的”(很少匹配的文档), 并且经常使用不评分查询(non-scoring queries),结果会被缓存到内存中以便快速读取, 所以有各种各样的手段来优化查询结果。 相反,评分查询(scoring queries)不仅仅要找出 匹配的文档,还要计算每个匹配文档的相关性, 计算相关性使得它们比不评分查询费力的多。同时,查询结果并不缓存。 多亏倒排索引(inverted index),一个简单的评分查询在匹配少量文档时可能与一个涵盖百万文 档的filter表现的一样好,甚至会更好。但是在一般情况下,一个filter 会比一个评分的query性能更优异, 并且每次都表现的很稳定。 过滤(filtering)的目标是减少那些需要通过评分查询(scoring queries)进行检查的文档。 如何选择查询与过滤编辑 通常的规则是,使用 查询(query)语句来进行 全文 搜索或者其它任何需要影响 相关性得分 的搜索。除此以外的情况都使用过滤(filters)。 (2)批量插入 curl -XPOST 'http://10.4.30.151:9200/my_store/products/_bulk?pretty' -H 'Content-Type: application/json' -d'{ "index": { "_id": 1 }} { "price" : 10, "productID" : "XHDK-A-1293-#fJ3" } { "index": { "_id": 2 }} { "price" : 20, "productID" : "KDKE-B-9947-#kL5" } { "index": { "_id": 3 }} { "price" : 30, "productID" : "JODL-X-1937-#pV7" } { "index": { "_id": 4 }} { "price" : 30, "productID" : "QQPX-R-3956-#aD8" } ' (3)term 精确查询 term 查询只对倒排索引的词项精确匹配,这点很重要,它不会对词的多样性进行处理(如, foo 或 FOO ) curl -XGET 'http://10.4.30.151:9200/my_store/products/_search?pretty' -H 'Content-Type: application/json' -d'{ "query" : { "constant_score" : { "filter" : { "term" : { "price" : 20 } } } } }' (4)嵌套查询 curl -XGET 'http://10.4.30.151:9200/my_store/products/_search?pretty' -H 'Content-Type: application/json' -d'{ "query" : { "filtered" : { "filter" : { "bool" : { "should" : [ { "term" : {"price" : 20}}, { "term" : {"productID" : "XHDK-A-1293-#fJ3"}} ], "must_not" : { "term" : {"price" : 30} } } } } } }' (5)range 用于查询一定范围的文本 curl -XGET 'http://10.4.30.151:9200/my_store/products/_search?pretty' -H 'Content-Type: application/json' -d'{ "query" : { "constant_score" : { "filter" : { "range" : { "price" : { "gte" : 20, "lt" : 40 } } } } } }' 全文搜索 全文搜索两个最重要的方面是: 相关性(Relevance) 它是评价查询与其结果间的相关程度,并根据这种相关程度对结果排名的一种能力, 这种计算方式可以是 TF/IDF 方法(参见 相关性的介绍)、地理位置邻近、模糊相似,或其他的某些算法。 分析(Analysis) 它是将文本块转换为有区别的、规范化的 token 的一个过程,(参见 分析的介绍) 目的是为了(a)创建倒排索引以及(b)查询倒排索引。 match 查询主要的应用场景就是进行全文搜索 (6)批量插入 curl -XPOST 'http://10.4.30.151:9200/my_index/my_type/_bulk?pretty' -H 'Content-Type: application/json' -d'{"index": { "_id": 1 }} { "title": "The quick brown fox" } { "index": { "_id": 2 }} { "title": "The quick brown fox jumps over the lazy dog" } { "index": { "_id": 3 }} { "title": "The quick brown fox jumps over the quick dog" } { "index": { "_id": 4 }} { "title": "Brown fox brown dog" }' curl -XGET 'http://10.4.30.151:9200/my_index/my_type/_search?pretty' -H 'Content-Type: application/json' -d'{ "query": { "match": { "title": "QUICK!" } } }' match 多词查询 不去匹配 brown OR dog ,而通过匹配 brown AND dog 找到所有文档 curl -XGET 'http://10.4.30.151:9200/my_index/my_type/_search?pretty' -H 'Content-Type: application/json' -d'{ "query": { "match": { "title": { "query": "BROWN DOG!", "operator": "and" } } } }'
相关文章推荐
- elasticsearch2.1.0 curl 相关操作命令(一)
- 使用curl命令操作elasticsearch
- 学习用Node.js和Elasticsearch构建搜索引擎(3):使用curl命令操作elasticsearch
- 用curl命令操作Elasticsearch命令笔记
- 使用curl命令操作elasticsearch
- 使用curl命令操作elasticsearch
- 使用curl命令操作elasticsearch
- 使用curl命令操作elasticsearch
- elasticsearch2.1.0文档的相关操作
- 使用curl命令操作elasticsearch And 使用http 查询ES
- [转]使用curl命令操作elasticsearch And 使用http 查询ES
- MongoDB入门教程(包含安装、常用命令、相关概念、使用技巧、常见操作等)
- JAVAWEB开发之redis学习(五)——SortedSet集合相关的操作命令
- Grub2启动项的修改和相关操作命令
- raid操作相关命令笔记
- Linux自学笔记(九)常用命令之Vim相关操作
- window中的cmd中的mysql的相关操作命令
- linux磁盘操作相关命令(dh du fdisk mkfs.ext3)
- Linux下磁盘相关操作命令
- Elasticsearch笔记二之Curl工具基本操作