首页 > 代码库 > 搜索——基础工具( Searching – the basic tools)

搜索——基础工具( Searching – the basic tools)

目前,我们已经知道了怎么把ES作为一个简单的NoSQL风格的分布式文档存储的使用方法,我们能把JONS格式的document存储进去,也通过ID检索出来,但是ES的强大功能不止于此,他能整理混乱的数据,把大数据变成大信息。

这也是我们使用JSON格式而不是使用其他格式存储document的原因,ES不仅仅是简单的存储document,他还跟踪document的内容,以便于能够使这个document能够搜索。

每个docuement的字段都可以被搜索和查询,但是不仅仅如此,在一个单独的查询中,ES能对所有的index进行查询,并且瞬间返回结果,这个是在传统的数据库中是做不到的。

搜索可以是这个样子的:

1:对具体的field进行查询,比如gender或者age,并且能对join_date进行排序,就好象使用SQL一样。

2:全文检索,这个查询可以在这个document中对关键字进行搜素,并且根据关联度进行排序。

3:或者以上两个查询的联合。

然而很多的搜索操作是在开箱状态下完成的,使用ES潜在的功能,你要了解三个概念。

Mapping      每个field中的数据是怎么定义的。

Analysis       整个documnet是怎么能够搜索的。

Query DSL   ES使用的灵活的,强大的查询语言。

以上的每个概念都是包含了很多的内容的,我们将会在Search in depth 中进行详细的介绍。本章将会介绍以上三个的基础概念,这些已经足够帮助你对ES的search是怎么工作的有个概括性的了解。

我们将会从一个简单的search api开始进行解释。

 

测试数据

本章的测试数据可以从https://gist.github.com/clintongormley/8579281找到。

你可以把命令拷贝到shell中以便于更上本章的进度。

 

原文:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/search.html