20160616搜索引擎

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  个结果 !

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 博客原文一博客原文二 翻译作品,水平有限,如有错误,烦请留言指正。原文请见 官网英文文档 起步 Elasticse...
    rabbitGYK阅读 3,278评论 0 68
  • Solr&ElasticSearch原理及应用 一、综述 搜索 http://baike.baidu.com/it...
    楼外楼V阅读 7,331评论 1 17
  • 写作的意义是什么? 写作团前天有个朋友说不想写了,原因是她不想写没有意义的文字。可是什么是有意义的文字呢?曾经我以...
    麦子飞呀飞阅读 165评论 0 0
  • 在北京最冷的上个周末,我和H小姐在奥森约跑,我说:“这种鬼天气能出来和你约跑的都是真爱,还换了四次地铁!”H小姐说...
    dare_to_think阅读 243评论 0 0
  • 最后我会被找到 在一片寂静的森林 我会在我常去的湖泊那儿看到一个少女她纯洁美丽 她在湖泊对面对我笑 她看上去很喜...
    马背酒阅读 505评论 0 0