Elasticsearch服务器 搜索笔记
2016-01-10 12:31
183 查看
3.4索引查询
多个索引,只在一个上面按查询,其他的几个索引不查询这种的3.5过滤查询
可以放在缓存,提升速度,尽量使用filtered查询,不是post_filter,因为前者速度快3.5.1使用过滤
过滤显示一定条件的文档如,title是a,但是出版时间是1961年的书{query:{match:{tittle:name}},post_filter:term:{year:1961}},post表示查询出来在过滤,filter表示查询之前就过滤3.5.2过滤器类型
范围过滤gte,lte,gt,lt等3.5.3exit过滤器
过滤掉给定字段没有值的文档3.5.4 missing过滤器
过滤掉给定字段有给定值的字段3.5.5脚本过滤
通过计算值来过滤文档,例如过滤掉所有一个世纪之前的书3.5.6 类型过滤器
如果多个type例如,book,product可以限定只返回未book的文档3.5.7 限定过滤器
限定单个分片返回的文档数目,如五个分片,一个返回一个3.5.8 过滤器的缓存:
加速了使用过滤器的查询,最佳选择是那些可以重复使用的过滤器,exits,missing,range,term,terms缓存默认打开3.6 高亮显示
简单高亮显示{query:{term:{title:crime}},highlight:{fields:{title:{}}}}3.6.1 字段配置
高亮显示的字段设置为stored或者在_source字段3.6.2 深入底层
lucene三种高亮,标准类型,fastvectorhighlighter,postingshighlighter三种,es自动选择,如果term_vector设成了with_positions_offsets则使用fastvvectorhighlighter,如果存储大量数据的字段,推荐fast
3.6.3 配置html标签
可以设置pre_tags以及post_tags,来控制如何高亮显示控制高亮片段,number_of_fragments定义返回片段的数量,fragment_size用来指定高亮片段最大字符长度
全局设置与局部设置:不是太懂
3.6.4 需要匹配
例如在des以及name字段均可以高亮,查询name:a的时候,除了name字段高亮,另一个字段也高亮,这种时候需要将require_field_match置为true即可3.6.5 信息高亮器
posting,需要属性设置为offsets的时候使用,标准的高亮比如说cents of,只是在cents of的时候单独高亮这两个词,但是信息高亮器将说有的cents 以及所有的of高亮,即高亮了所有跟查询匹配的词条,而不仅是组成短语的那些词,并不是cents of在一块才高亮3.7 验证查询:
使用验证API:可以用来检验所写的查询语句是否正确3.8 数据排序:
3.8.1 默认排序是:
sort:{_source:desc}3.8.2 制定缺少字段排序:
如果没有我们所排序的字段,升序第一,降序最后3.8.3 动态条件:
使用脚本来编写3.8.4 排序规则和国家特有字符:
支持其他语言排序,但是必须安装插件3.9 查询重写
将昂贵的查询改成不太昂贵的查询,减少代价3.9.1 查询重写属性
scoring_boolean,constant_score_boolean,constant_core_filter,top_terms_N,top_terms_boost_N如果能忍受精度低,使用top_N重写,如果必须精度高,选择bool重写相关文章推荐
- Java控制Appium server start/stop
- Swift 一,UILabel详解
- 008String to Integer (atoi) (C)
- 触摸屏技术
- 三星Galaxy Note 10.1 N8010 最后的救赎 Andorid 5.0.2 ROM
- 智能指针
- 【慕课笔记】第二章 变量和常量 第10节 如何在Java中使用注释
- Mysql中文乱码问题完美解决方案
- RxJava基础
- iOS- 如何集成支付宝
- JSP自定义标签——简单标签(1)
- maven学习-properties标签的使用
- Mysql 使用with rollup对聚合结果进行聚合
- 三星N8000/N8010通用刷机教程
- IP选路
- ICMP——Internet控制报文协议
- 总结
- js的效率问题
- 图片下载—>显示封装类思路
- Beta版本发布说明