摘要:
在实际的搜索中,我们有时候会打错字,从而导致搜索不到。在Elasticsearch中,我们可以使用fuzziness属性来进行模糊查询,从而达到搜索有错别字的情形。 match查询具有“fuziness”属性。它可以被设置为“0”, “1”, “2”或“auto”。“auto”是推荐的选项,它会根据 阅读全文
摘要:
在上一篇文章 “Elasticsearch:运用scroll接口对大量数据实现更好的分页”,我们讲述了如何运用scroll接口来对大量数据来进行有效地分页。在那篇文章中,我们讲述了两种方法: from加上size的方法来进行分页 运用scroll接口来进行分页 对于大量的数据而言,我们尽量避免使用f 阅读全文
摘要:
在Elasticsearch中,我们可以通过size和from来对我们的结果来进行分页。但是对于数据量很大的索引,这是有效的吗?Scroll API可用于从单个搜索请求中检索大量结果(甚至所有结果),这与在传统数据库上使用cursor的方式非常相似。Scroll不是用于实时用户请求,而是用于处理大量 阅读全文
摘要:
我们发现一些用户经常编写了一些非常冗长和复杂的查询 在很多情况下,相同的查询会一遍又一遍地执行,但是会有一些不同的值作为参数来查询。在这种情况下,我们觉得使用一个search template(搜索模板)来做这样的工作非常合适。搜索模板允许您使用可在执行时定义的参数定义查询。 Search temp 阅读全文
摘要:
Index template定义在创建新index时可以自动应用的settings和mappings。 Elasticsearch根据与index名称匹配的index模式将模板应用于新索引。这个对于我们想创建的一系列的Index具有同样的settings及mappings。比如我们希望每一天/月的日 阅读全文
摘要:
在今天的这个教程中,我们来着重讲解一下如何使用Elasticsearch中的copy来提高搜索的效率。比如在我们的搜索中,经常我们会遇到如下的文档: 在这里,我们可以看到在这个文档中,我们有这样的几个字段: 它们是非常相关的。我们在想是不是可以把它们综合成一个字段,这样可以方便我们的搜索。假如我们要 阅读全文
摘要:
在处理大量数据时,关系数据库存在很多问题。 无论是速度,高效处理,有效并行化,可扩展性还是成本,当数据量开始增长时,关系数据库都会失败。该关系数据库的另一个挑战是必须预先定义关系和模式。Elasticsearch也是一个NoSQL文档数据存储。 但是,尽管是一个NoSQL数据存储,Elasticse 阅读全文
摘要:
在我们开发的过程中,我们有很多时候需要用到Reindex接口。它可以帮我们把数据从一个index到另外一个index进行重新reindex。这个对于特别适用于我们在修改我们数据的mapping后,需要重新把数据从现有的index转到新的index建立新的索引,这是因为我们不能修改现有的index的m 阅读全文
摘要:
Ngrams和edge ngrams是在Elasticsearch中标记文本的两种更独特的方式。 Ngrams是一种将一个标记分成一个单词的每个部分的多个子字符的方法。 ngram和edge ngram过滤器都允许您指定min_gram以及max_gram设置。 这些设置控制单词被分割成的标记的大小 阅读全文
摘要:
Elasticsearch内置的分词器对中文不友好,只会一个字一个字的分,无法形成词语,比如: 如果我们使用的是standard的分词器,那么结果就是: 显然这对中文来说并不友好,它显示的每一个汉字。好在Elastic的大拿medcl已经为我们做好IK中文分词器。下面我们来详细介绍如何安装并使用中文 阅读全文
摘要:
在今天的文章中,我们来进一步了解analyzer。 analyzer执行将输入字符流分解为token的过程,它一般发生在两个场合: 在indexing的时候,也即在建立索引的时候 在searching的时候,也即在搜索时,分析需要搜索的词语 什么是analysis? 分析是Elasticsearch 阅读全文
摘要:
现在让我们来谈谈Elasticsearch最简单和最有用的功能之一:别名 (alias)。为了区分这里alias和文章“Elasticsearch : alias数据类型”,这里的别名(alias)指的是index的别名。 别名正是他们听起来的样子; 它们是您可以使用的指针或名称,对应于一个或多个具 阅读全文
摘要:
就像其他的很多语言一样,我们可以给已有的变量取一个别名(alias)。即便是对高级语言一样,比如我们定义不同的指针变量,指向同一个内存空间。这个有些类似别名的概念。 在Elasticsearch中,我们也可以为index中的一个字段(field)取一个另外的名字: 它可以用来代替搜索请求中的目标(t 阅读全文
摘要:
在Elasticsearch中,Join可以让我们创建parent/child关系。Elasticsearch不是一个RDMS。通常join数据类型尽量不要使用,除非不得已。那么Elasticsearch为什么需要Join数据类型呢? 在Elasticsearch中,更新一个object需要root 阅读全文
摘要:
在今天的文章中,我们来介绍如何使用Java来访问Elasticsearch。 首先,我们必须在我们的系统中安装Elasticsearch。 Maven 配置 针对Java的开发,我们必须在pom.xml中配置相应的Elasticsearch的信息。Mavev dependency定义如下: 这也是目 阅读全文
摘要:
以后会用到的相关知识:索引中某些字段禁止搜索,排序等操作 当我们学习Elasticsearch时,经常会遇到如下的几个概念: Reverted index doc_values source? 这个几个概念分别指的是什么?有什么用处?如何配置它们?只有我们熟练地掌握了这些概念,我们才可以正确地使用它 阅读全文
摘要:
rollover使您可以根据索引大小,文档数或使用期限自动过渡到新索引。 当rollover触发后,将创建新索引,写别名(write alias)将更新为指向新索引,所有后续更新都将写入新索引。 对于基于时间的rollover来说,基于大小,文档数或使用期限过渡至新索引是比较适合的。 在任意时间ro 阅读全文
摘要:
在我们的实际部署中,我们的各个node(节点)的能力是不一样的。比如有的节点的计算能力比较强,而且配有高性能的存储,速度也比较快,同时我们可能有一些node的能力稍微差一点,比如计算能力及存储器的速度都比较差一点。针对这两种情况,我们其实可以把这两种节点用来做不同的用途:运算能力较强的节点可以用来做 阅读全文
摘要:
如果您要处理时间序列数据,则不想将所有内容连续转储到单个索引中。 取而代之的是,您可以定期将数据滚动到新索引,以防止数据过大而又缓慢又昂贵。 随着索引的老化和查询频率的降低,您可能会将其转移到价格较低的硬件上,并减少分片和副本的数量。 要在索引的生命周期内自动移动索引,可以创建策略来定义随着索引的老 阅读全文
摘要:
Elastic的Medcl提供了一种搜索Pinyin搜索的方法。拼音搜索在很多的应用场景中都有被用到。比如在百度搜索中,我们使用拼音就可以出现汉字: 对于我们中国人来说,拼音搜索也是非常直接的。那么在Elasticsearch中我们该如何使用pinyin来进行搜索呢?答案是我们采用Medcl所创建的 阅读全文