Elasticsearch - 搜索类型与搜索位置

一、搜索类型:

Elasticsearch同意用户选择其所希望的处理查询的方式。

由于存在一些不同的情形,对其使用不同的搜索类型才是合适的。为了控制查询的运行方式,我们能够在请求中使用search_type參数,以有下类型能够选择。

1、query_and_fetch:一般是最快也是最简单的搜索类型。查询语句在全部需检查的分片上并行运行,而且全部分片返回结果的规划为size參数的取值。因此。该类型返回的文档数目最大为size參数的取值与分片数目的乘积。

2、query_then_fetch:查询语句首先得到将文档排序所需的信息,然后得到要获取的文档内容的相关分片。与query_and_fetch不同,该类搜索返回的文档数目最大为size參数的取值。

3、dfs_query_and_fetch:该类搜索相似于query_and_fetch。除了完毕query_and_fetch的工作外,还运行初始查询阶段,该阶段计算分布式的词频以更精准地对返回文档打分。

4、dfs_query_then_fetch:该类搜索相似于query_then_fetch。

除了完毕query_then_fetch的工作外。还运行初始查询阶段,该阶段计算分布式的词频以更精准地对返回文档打分。

5、count:这是一种特殊的搜索类型。仅仅返回匹配查询的文档数目。

二、搜索位置:

除了上面的控制搜索选项外,还能够控制搜索在何种分片上运行。默认情况下。Elasticsearch使用请求发送到的节点和集群中其它节点上的可用分片和副本。

ES对查询的默认处理一般是正确的,假设有时我们希望改变默认行为,能够在查询指令中通过preference參数来实现。

1、_primary:该值说明仅仅会在主分片上运行操作。不会使用副本。

2、_primary_first:说明假设主分片可用,则在主分片上运行操作;假设主分片不可用,则在其它分片上运行。

3、_local:该值说明假设可能的话,将在请求发送到的节点上的可用分片上运行操作。

4、_only_node:node_id:该值说明将在给定节点ID的节点上运行操作。

时间: 2025-01-05 21:56:31

Elasticsearch - 搜索类型与搜索位置的相关文章

elasticsearch搜索类型简介

简单搜索 GET请求非常简单--你能轻松获取你想要的文档.让我们来进一步尝试一些东西,比如简单的搜索! 我们尝试一个最简单的搜索全部员工的请求: GET /megacorp/employee/_search 接下来,让我们搜索姓氏中包含"jake"的员工.要做到这一点,我们将在命令行中使用轻量级的搜索方法.这种方法常被称作查询字符串(query string)搜索,因为我们像传递URL参数一样去传递查询语句: GET /megacorp/employee/_search?q=last_

elasticsearch搜索类型简单介绍

简单搜索 GET请求很easy--你能轻松获取你想要的文档.让我们来进一步尝试一些东西.比方简单的搜索! 我们尝试一个最简单的搜索所有员工的请求: GET /megacorp/employee/_search 接下来.让我们搜索姓氏中包括"jake"的员工. 要做到这一点,我们将在命令行中使用轻量级的搜索方法. 这样的方法常被称作查询字符串(query string)搜索.由于我们像传递URL參数一样去传递查询语句: GET /megacorp/employee/_search? q=

Elasticsearch搜索类型(query type)详解

es在查询时,可以指定搜索类型为QUERY_THEN_FETCH,QUERY_AND_FEATCH,DFS_QUERY_THEN_FEATCH和DFS_QUERY_AND_FEATCH.那么这4种搜索类型有什么区别? 分布式搜索背景介绍: ES天生就是为分布式而生,但分布式有分布式的缺点.比如要搜索某个单词,但是数据却分别在5个分片(Shard)上面,这5个分片可能在5台主机上面.因为全文搜索天生就要排序(按照匹配度进行排名),但数据却在5个分片上,如何得到最后正确的排序呢?ES是这样做的,大概

企业大数据之Elasticsearch的搜索类型

下面的 ES基于版本(V2.3.4) ES之默认 1.默认自动发先同一局域网的所有集群节点 2.默认一个索引库会有5个分片,(分片越多,效率越好) 由于这两个默认,所以统一索引库的分片对分布在不同机器上,API搜索时会有这样的问题 ES的搜索类型 1.为什么会有这个东西? 如图,会出现这两个问题: and和then的区别:如下图 2.解决办法 ES定义了四种搜索类型:QUERY_THEN_FETCH:默认搜索类型,对50个进行分值排序,返回的数据量对但是有不准确的行为QUERY_AND_FETC

转:在ElasticSearch之下(图解搜索的故事)

ElasticSearch 2 (9) - 在ElasticSearch之下(图解搜索的故事) 摘要 先自上而下,后自底向上的介绍ElasticSearch的底层工作原理,试图回答以下问题: 为什么我的搜索 *foo-bar* 无法匹配 foo-bar ? 为什么增加更多的文件会压缩索引(Index)? 为什么ElasticSearch占用很多内存? 版本 elasticsearch版本: elasticsearch-2.2.0 内容 图解ElasticSearch 云上的集群 集群里的盒子 云

〈三〉ElasticSearch的认识:搜索、过滤、排序

目录 上节回顾 本节前言 文档的搜索 URL参数条件搜索 请求体条件搜索 语法与示例: 补充: 小节总结: 文档的过滤filter 语法与举例: filter与bool constant_score cache 小节总结: 文档的聚合分析 准备数据 语法与举例: 其他语法: 补充: 小节总结: 文档的分页.排序 分页 排序 deep paging 补充: 小节总结: 发表日期:2019年9月20日 上节回顾 1.讲了如何对索引CRUD 2.重新解释了type,只是元数据的效果 3.讲了如何对文档

Elasticsearch学习之深入搜索一 --- 提高查询的精准度

1. 为帖子增加标题字段 POST /forum/article/_bulk { "update": { "_id": "1"} } { "doc" : {"title" : "this is java and elasticsearch blog"} } { "update": { "_id": "2"} } { "

elasticsearch(4) 轻量搜索

一 空搜索 搜索API的最基础的形式是没有指定任何查询的空搜索 ,它简单地返回集群中所有索引下的所有文档: 示例 GET 127.0.0.1:9200/_search 响应 { "took": 166, "timed_out": false, "_shards": { "total": 10, "successful": 10, "skipped": 0, "failed&qu

每日SEO:从用户搜索类型定位企业网站

80%以上的搜索是信息型的,只有10%是导航或交易型的. 在我们平常对企业网站定位的时候,通常要考虑的是我们要通过这个网站来展示哪些信息,而不是我的网站怎么会被发现.如果从搜索类型的角度来看,我们是不是太看重关键字的分量了呢. 毫无疑问,这个答案是肯定的.为什么? 其实,很简单,你一直想把你们的网站定义成交易型的网站,而非信息型.有些人会反驳我说,他们的网站也是产品的信息,行业的新闻.我要说的是,你所展示的不过是更粗劣的交易欲望,而不是真心的付出与分享.看看你的信息吧,关键词适宜或不合时宜的大量