ES Index Search的理解

类型常用的也就这些了,还有一些类型大家可以参考官网,另外一个比较重的方面的就是分词了(analyzer),不管在目前任何检索系统是分词决定这检索 的查全与查准及索引的膨涨率等。在Es中analyzer的作用域也是从cluster、index、filed这三个作用域。Cluster的配置在配 置中讲过,下面以Field为主(另外具体的分词一些相关东西会在分词篇中讲)

Analyzer,在Lucene中是一个分词器的概念,我们知道Es是建立在Lucene之上的,所以这里的Analzyer同样的也适用,Mapping 中的Analyzer主在是指定字段采用什么分词器,具体的程序和配置分词在插件和配置都有过一些说明。

Analyzer在Es中分为index_analyzer和search_analyzer

Index_analzyer:指的是索引过程中采用的分词器

Search_analyzer:指的是检索过程中采用的分词器

我们知道index和search是两个过程,但是尽量保证这两个过程和分词方式一致这样可以保证查全和查准,否则再牛B的分词,index和search采用的不相同也是无用功。

与analyzer与之相关的就是别外一项index项

"HC":{ "type":"string", "index":"no", "store":"no"}

Index表示该字段是否索引,如果index为no那个analyzer设为啥也没用。

最 后是”store”项了store项表示该项是否存储到倒索索引中去,并不是_source,当项mapping中还有很多可以设置和优化的地方,会面在 慢慢讨论。在mapping中index和store如果大家有时候觉得有点和source搞不清楚,大家可以参考lucene中的 Field.Store.YES,Field.Index.NOT_ANALYZED,Field.Index等相关设置就比较明白了。

-----------------------------------------------

云计算平台(检索篇)-Elasticsearch-索引优化篇

ES索引优化篇主要从两个方面解决问题,一是索引数据过程;二是检索过程。

索 引数据过程我在上面几篇文章中有提到怎么创建索引和导入数据,但是大家可能会遇到索引数据比较慢的过程。其实明白索引的原理就可以有针对性的进行优化。 ES索引的过程到相对Lucene的索引过程多了分布式数据的扩展,而这ES主要是用tranlog进行各节点之间的数据平衡。所以从上我可以通过索引的 settings进行第一优化:

"index.translog.flush_threshold_ops": "100000"

"index.refresh_interval": "-1",

这两个参数第一是到tranlog数据达到多少条进行平衡,默认为5000,而这个过程相对而言是比较浪费时间和资源的。所以我们可以将这个值调大一些还 是设为-1关闭,进而手动进行tranlog平衡。第二参数是刷新频率,默认为120s是指索引在生命周期内定时刷新,一但有数据进来能refresh像 lucene里面commit,我们知道当数据addDoucment会,还不能检索到要commit之后才能行数据的检索所以可以将其关闭,在最初索引 完后手动refresh一之,然后将索引setting里面的index.refresh_interval参数按需求进行修改,从而可以提高索引过程效 率。

另外的知道ES索引过程中如果有副本存在,数据也会马上同步到副本中去。我个人建议在索引过程中将副本数设为0,待索引完成后将副本数按需量改回来,这样也可以提高索引效率。

"number_of_replicas": 0

上面聊了一次索引过程的优化之后,我们再来聊一下检索速度比较慢的问题,其实检索速度快度与索引质量有很大的关系。而索引质量的好坏与很多因素有关。

http://www.cnblogs.com/zhangchenliang/p/4186702.html

时间: 2024-07-28 18:33:43

ES Index Search的理解的相关文章

Something wrong with EnCase index search in Unallocated area

hi, My EnCase version is v7 and I found a terrible issue about index search in Unallocated area. Without Internet Evidence Finder I could not the truth of EnCase index search...Thanks God I use IEF to carve the evidence file and some webmail found..s

Something wrong with FTK's index search results

My friend she told me last week that FTK could not "see" keywords in a plain text files when doing index search. That's very interesting. I used to trust the search results of FTK, and I think there must be something wrong . I have to do a test

Does FTK index search support regular expression?

Some of my friends ask me a question: "Does FTK index search support regular expression?" They just participated in FTK Bootcamp last month, and they're trying to spend more time with FTK now. The answer is "Yes". FTK index search supp

solrCloud index search (图)

结合网上的资料,抄袭了几张图,记录下. 1.solrcloud-collection/shard/replica 1.Replica.Leader是core的角色,在index.search的过程中作用不同. 2.不同shard尽量分布在不同的solr节点上.solr上的core尽量分布“均匀”,确保负载平均. 2.solrCloud-index 1.将index请求发送到任意core上. 2.如果core是Replica,则转发到同shard的Leader上. 3.判断index到哪个分片上(

Lucene Index Search

转发自:  https://my.oschina.net/u/3777556/blog/1647031 什么是Lucene?? Lucene 是 apache 软件基金会发布的一个开放源代码的全文检索引擎工具包,由资深全文检索专家 Doug Cutting 所撰写,它是一个全文检索引擎的架构,提供了完整的创建索引和查询索引,以及部分文本分析的引擎. Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎,Luce

Spark2.2+ES6.4.2(三十二):ES API之ndex的create(创建index时设置setting,并创建index后根据avro模板动态设置index的mapping)/update/delete/open/close

要想通过ES API对es的操作,必须获取到TransportClient对象,让后根据TransportClient获取到IndicesAdminClient对象后,方可以根据IndicesAdminClient对象提供的方法对ES的index进行操作:create index,update index(update index settings,update index mapping),delete index,open index,close index. 准备工作(创建Transpor

ES配置文件参考与参数详解

cluster.name: data-cluster node.name: "data-es-05" #node.data: false # Indexing & Cache config index.number_of_shards: 5 index.number_of_replicas: 1 index.cache.field.type: soft index.cache.field.expire: 10m index.cache.query.enable: true in

Lucene NumericRangeQuery的初步理解

理解NumericRangeQuery, 首先需要理解Lucene是如何存储数值类型. 文本初步探讨了Int和Float两种数值类型在Lucene中的存储实现,数值类型的分词原理,  最后给出NumericRangeQuery的简单理解. Lucene最初设计是实现全文检索功能, 即只处理字符串. 因此, 在处理数值时, Lucene也是将数值编码为字符串. 将数值转换成字符串, Lucene-5.2.0对应的实现类为org.apache.lucene.util.NumericUtils. 其编

ES 2.0 集群运维命令整理

ES 2.0 集群运维命令整理 _cat命令 _cat用于查看集群当前状态,涉及到shard/node/cluster几个层次 基本参数 verbose: 显示列名, 请求参数为v 示例: curl localhost:9200/_cat/master?v help: 显示当前命令的各列含义, 请求参数为help. 某些命令部分列默认不显示,可通过help该命令可显示的所有列 示例: curl localhost:9200/_cat/master?help bytes: 数值列还原为原始值. 如