20160616搜索引擎

2016-09-16  本文已影响17人  达贵

http://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=400771024&idx=1&sn=c38fbeff5f327010afa3fcd62194a8fd&scene=2&srcid=1208D1tfZdKkouWuouqkYeT2&from=timeline&isappinstalled=0#wechat_redirect

查询执行过程通常要分成两个阶段,分散阶段及合并阶段。分散阶段是向所查询的索引中的所有shard发起执行查询的过程,合并阶段是将各shard返回的结果合并、排序并响应给客户端的过程。

向ElasticSearch发起查询操作有两种方式:一是通过RESTful request API传递查询参数,也称“query-string”;另一个是通过发送REST request body,也称作JSON格式。

ES的数据可被广义的分为两种类型:“types:exect”和“full-text”。

精确值(Exact values)就是指数据未曾加工过的原始值,而Full-text则用于引用文本中的数据。

搜索引擎:

搜索程序一般由索引链及搜索组件组成。
索引链功能的实现需要按照几个独立的步骤依次完成:检索原始内容、根据原始内容来创建对应的文档、对创建的文档进行索引。搜索组件用于接收用户的查询请求并返回相应结果,一般由用户接口、构建可编程查询语句的方法、查询语句执行引擎及结果展示组件组成。

当需要从大量文本中快速检索文本目标时,必须首先将文本内容转换成能够进行快速搜索的格式,以建立针对文本的索引数据结构,此即为索引过程。


分片用于Elasticsearch在你的集群中分配数据。想象把分片当作数据的容器。文档存储在分片中,然后分片分配给你集群中的节点上。当你的集群扩容或缩小,Elasticsearch将会自动在你的节点间迁移分片,以使集群保持平衡。

ElasticSearch 的search_type (搜索类型): 6个

http://es.xiaoleilu.com/060_Distributed_Search/15_Search_options.html

query_then_fetch是默认的搜索类型

count(计数)、query_and_fetch、dfs_query_then_fetch、dfs_query_and_fetch、scan

映射及分析

在索引中有12个tweets,只有一个包含日期2014-09-15,但是我们看看下面查询中的totalhits。

GET /_search?q=2014              # 12 个结果

GET /_search?q=2014-09-15        # 还是 12 个结果 !

GET /_search?q=date:2014-09-15  # 1  一个结果

GET /_search?q=date:2014        # 0  个结果 !

上一篇下一篇

猜你喜欢

热点阅读