您的位置:首页 > 其它

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重写
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: