您现在的位置是: 首页 > ES运行检索两种基本方式


ES运行检索两种基本方式

纯真年代 2019-05-31 17:46:19 0 273人围观

    以下基于ES6.4.3

    Elasticsearch运行检索两种基本方式,一种是REST请求的URI,顾名思义就是在url带查询参数;其二是REST请求主体,顾名思义就是在请求体中带查询参数。

URI Search

例子:

GET twitter/_search?q=user:kimchy

回应:

{
"timed_out": false,
"took": 62,
"_shards":{
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits":{
"total" : 1,
"max_score": 1.3862944,
"hits" : [
{
"_index" : "twitter",
"_type" : "_doc",
"_id" : "0",
"_score": 1.3862944,
"_source" : {
"user" : "kimchy",
"date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch",
"likes": 0
}
}
]
}
}

其实查询参数还有许多,具体参数如下:

 参数描述 
 q 查询匹配字符串(映射到query_string查询,请参阅 官方查询字符串查询 以获取更多详细信息)
 df 在查询中未定义字段前缀时使用的默认字段
 analyzer 分析查询字符串时要使用的分析器名称
 analyze_wildcard 是否应分析通配符和前缀查询。默认为false
 batched_reduce_size 应在协调节点上一次减少的分片结果数。如果请求中潜在的分片数量很大,则应将此值用作保护机制,以减少每个搜索请求的内存开销。
 default_operator 要使用的默认运算符可以是AND或 OR。默认为OR。
 lenient 如果设置为true将导致忽略基于格式的失败(如向数字字段提供文本)。默认为false。
 explain 对于每个命中,包含如何计算命中得分的解释
 _source 设置为false禁用_source字段检索。您还可以使用_source_include&检索部分文档_source_exclude( 有关详细信息,请参阅官方请求正文文档)
 stored_fields 每个匹配返回的文档的选择性存储字段,逗号分隔。不指定任何值将导致不返回任何字段。
 sort 排序执行。可以是fieldName或 fieldName:asc/ 的形式fieldName:desc。fieldName可以是文档中的实际字段,也可以是_score指示基于分数排序的特殊名称。可以有几个sort参数(顺序很重要)。
 track_scores 排序时,设置为true仍然跟踪分数并将其作为每个匹配的一部分返回
 track_total_hits 设置为false禁用跟踪与查询匹配的匹配总数。(有关详细信息,请参阅官方索引排序)。默认为true。
 timeout 搜索超时,将搜索请求限制在指定的时间值内执行,并使用在到期时累积的点击数进行保释。默认为无超时。 参考时间单位
 terminate_after 在到达查询执行将提前终止时,为每个分片收集的最大文档数。如果设置,响应将具有一个布尔字段,terminated_early以指示查询执行是否实际上已终止。默认为no terminate_after。
 from 从命中的索引开始返回。默认为0
 size 要返回的点击次数。默认为10,和from一般组成分页查询
 search_type 要执行的搜索操作的类型。可以是 dfs_query_then_fetch或query_then_fetch。默认为query_then_fetch。有关可以执行的不同搜索类型的更多详细信息,请参阅 官方搜索类型
 allow_partial_search_results false如果请求将产生部分结果,则设置为返回整体故障。默认为true,这将在超时或部分失败的情况下允许部分结果。


Request Body Search

例子:允许GET、POST请求

GET /twitter/_search
{
"query" : {
"term" : { "user" : "kimchy" }
}
}

回应:

{
"took": 1,
"timed_out": false,
"_shards":{
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits":{
"total" : 1,
"max_score": 1.3862944,
"hits" : [
{
"_index" : "twitter",
"_type" : "_doc",
"_id" : "0",
"_score": 1.3862944,
"_source" : {
"user" : "kimchy",
"message": "trying out Elasticsearch",
"date" : "2009-11-15T14:12:12",
"likes" : 0
}
}
]
}
}

参数如下:

参数  说明
 timeout 搜索超时,将搜索请求限制在指定的时间值内执行,并使用在到期时累积的点击数进行保释。使用“ 搜索取消” 编辑机制在达到超时后取消搜索请求。默认为无超时。参考时间单位
 from 从某个偏移量中检索命中。默认为0。
 size默认为10。如果您不关心某些匹配但仅关于匹配和/或聚合的数量,则将值设置为0有助于提高性能。
 search_type 要执行的搜索操作的类型。可以是 dfs_query_then_fetch或query_then_fetch。默认为query_then_fetch。请参阅搜索类型以获取更多
 request_cache 设置为true或false启用或禁用对于size为0的请求的搜索结果的缓存,即聚合和建议(未返回顶部命中)。请参阅Shard请求缓存
 allow_partial_search_results false如果请求将产生部分结果,则设置为返回整体故障。默认为true,这将在超时或部分失败的情况下允许部分结果。
 terminate_after 在到达查询执行将提前终止时,为每个分片收集的最大文档数。如果设置,响应将具有一个布尔字段,terminated_early以指示查询执行是否实际上已终止。默认为no terminate_after。
 batched_reduce_size 应在协调节点上一次减少的分片结果数。如果请求中潜在的分片数量很大,则应将此值用作保护机制,以减少每个搜索请求的内存开销。

上面的有些参数,也会在后面文档中基于springboot去实践它

上一篇: Elasticsearch IK分词插件

下一篇: 2019-05-12

全部评论