Elasticsearch - 搜索类型与搜索位置
Posted blfbuaa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的工作外。还运行初始查询阶段,该阶段计算分布式的词频以更精准地对返回文档打分。
二、搜索位置:
除了上面的控制搜索选项外,还能够控制搜索在何种分片上运行。默认情况下。Elasticsearch使用请求发送到的节点和集群中其它节点上的可用分片和副本。
ES对查询的默认处理一般是正确的,假设有时我们希望改变默认行为,能够在查询指令中通过preference參数来实现。
1、_primary:该值说明仅仅会在主分片上运行操作。不会使用副本。
2、_primary_first:说明假设主分片可用,则在主分片上运行操作;假设主分片不可用,则在其它分片上运行。
3、_local:该值说明假设可能的话,将在请求发送到的节点上的可用分片上运行操作。
4、_only_node:node_id:该值说明将在给定节点ID的节点上运行操作。
以上是关于Elasticsearch - 搜索类型与搜索位置的主要内容,如果未能解决你的问题,请参考以下文章