猿问

Elasticsearch,忽略 GET 响应中的内置映射细节

Elasticsearch:v7.0
应用:Laravel v5.8
使用 Elasticsearch/Elasticsearch ( https://github.com/elastic/elasticsearch-php ) PHP 库

我们能够一次查询超过 900,000 个文档,我们正计划优化或加快查询速度。

我们观察到内置映射详细信息总是与响应一起返回,(见下图)

主要问题
- 有没有办法忽略这些映射细节,因为我们认为如果不包含这些细节,响应会更轻松。

附带问题
- 或者至少,我可以谦虚地要求任何人教育我优化我的 Laravel-Elasticsearch 应用程序吗?


慕田峪7331174
浏览 178回答 1
1回答

慕森王

您可以忽略映射详细信息,使用filter_path它可以减少查询返回的响应。例如,如果您点击:GET geo/_search{  "query": {    "match_all": {}  }}你会得到:{  "took" : 8,  "timed_out" : false,  "_shards" : {    "total" : 1,    "successful" : 1,    "skipped" : 0,    "failed" : 0  },  "hits" : {    "total" : {      "value" : 206,      "relation" : "eq"    },    "max_score" : 1.0,    "hits" : [      {        "_index" : "geo",        "_type" : "_doc",        "_id" : "ALLE",        "_score" : 1.0,        "_source" : {          "dateFrom" : null,          "aListRemoved" : [ ],          "phone" : "0036-1-424-2242",...但是如果你使用filter_path:GET geo/_search?filter_path=hits.hits._source{  "query": {    "match_all": {}  }}您将获得没有分片数量、命中关系、max_score 等的结果:{  "hits" : {    "hits" : [      {        "_source" : {          "dateFrom" : null,          "aListRemoved" : [ ],          "phone" : "0036-1-424-2242",    ...不能简单地回答附带问题,因为您需要描述您想要做什么以及您打算使用什么样的查询。要跳过评分(如果您不需要它)并提高性能,您可以使用filter和constant_score查询例如。
随时随地看视频慕课网APP
我要回答