分类目录归档:elasticsearch

elasticsearch权威指南 学习21

elasticsearch权威指南-- getting start 第七章 Full Body Search(5)

Combining Queries with Filters

queires和filter都有其各自的使用场景,但是elasticsearch也允许我们将二者结合起来,在elasticsearch中将filter加入到queries中是很常见的,但是将queries作为一个filter却不是很常见。下面我们就看看es是如何做到这些的。

继续阅读

elasticsearch权威指南 学习20

elasticsearch权威指南-- getting start 第七章 Full Body Search(4)

Most Important Queries and Filters

这一节我们主要说明一下queries和filters中最重要几个问题:

term Filter:

term filter被用于精确值查询,比如像number(数值类型),date(时间类型),boolean(布尔类型),或者not_analyzed的字符串精确值。如下形式:

继续阅读

elasticsearch权威指南 学习19

elasticsearch权威指南-- getting start 第七章 Full Body Search(3)

Queries and Filters

我们之前已经提到Query DSL,但实际上es中有两种DSL:query DSL和filter DSL。Query 语句和 filter 语句虽然很像的,但是也存在一些差别。

继续阅读

elasticsearch权威指南 学习17

elasticsearch权威指南-- getting start 第七章 Full Body Search(1)

Empty Search

让我们从最简单的search API开始,一个空查询,即body中没有任何东西,这样会返回索引(index)中的所有文档。(如果大于10的话会只返回10个document)

curl -XGET ‘localhost:9200/_search’

{}

继续阅读

elasticsearch权威指南 学习16

elasticsearch权威指南-- getting start 第六章 Mapping and Analysis(6)

Complex core field types

我觉着我可能要放弃的时候发生了一些事情,于是决定接着写下去了。

除了我们已经涉及到的比较简单的单一数据类型,JSON同样也有null,arrays和object类型,JSON的这些类型都是elasticsearch所支持的。

继续阅读

elasticsearch权威指南 学习15

elasticsearch权威指南-- getting start 第六章 Mapping and Analysis(5)

Mapping

为了使数据字段可以被elasticsearch很好的被识别为想要的类型,比如将字段指定为时间类型或数字类型的字段,或者指定字符串类型的字段为精确值(exact-value)类型或者全文(full-text)类型。elasticsearch需要知道每一个type的数据都包含哪些字段,这些信息都是在elasticsearch的mapping里定义的。

继续阅读

elasticsearch权威指南 学习14

elasticsearch权威指南-- getting start 第六章 Mapping and Analysis(4)

Analysis and Analyzers

分词主要由以下两个过程组成:

第一步将文本分割成能被反向索引(inverted index)所使用的单个单词。

第二步对单个单词进行标准化,提高它的搜索率或召回率。

分词的工作由分词器(Analyzers)来完成,一个分词器就是一个封装了三个模块的包。它由三部分组成: 继续阅读

elasticsearch权威指南 学习13

es权威指南-- getting start 第六章 Mapping and Analysis(3)

Inverted Index

elasticsearch 使用一种叫做反向索引(Inverted Index)的结构来支持高速的全文检索,一个反向索引由一组在document中出现过的单词(已去重)组成,同时也有一列用来标记这些词在document中否出现。 继续阅读

elasticsearch权威指南 学习12

es权威指南-- getting start 第六章 Mapping and Analysis(2)

Exact Values Versus Full Text

在elasticsearch中的数据可以分为两大类,一类是精确值(exact values)另一类是全文(full text)。

精确值查询的意思就不用多说了,比如精确查询的foo单词就不会匹配Foo。再比如一个用户的ID,一个日期字段,或是字符串类型的字段,比如用户名,email 地址等等。 继续阅读