首页 > 代码库 > 搜索——基础工具( 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