通过太多弹性搜索索引进行搜索时,“空响应”的原因是什么?

时间:2019-06-05 10:27:37

标签: elasticsearch

我的情况是:

  • Elasticsearch 1.7.3(由于应用程序修改的复杂性,尚未迁移到新版本,但已在计划中)
  • 不同节点上(通过部落节点)的索引很多
  • 每个索引名称的结构类似于index_type_prefilter1_prefilter2 prefilter2可以在对象属性的级别上进行,而prefilter1则不能

我需要搜索满足以下条件的对象: 在[x1,x2]中为prefilter_1和在[y1,y2,y3]中为'prefilter_2的所有对象

我不想搜索所有索引(索引很多,所以删除最多会极大地影响速度),所以我准备了一个索引列表:

[
    "type_x1_y1", "type_x1_y2", "type_x1_y3",
    "type_x2_y1", "type_x2_y2", "type_x2_y3",
]

问题是当我尝试执行对许多索引(大约200个)的请求时,我收到“ curl:(52)来自服务器的空回复”(即使使用CentOS'curl'util),我认为问题出在请求中的索引计数会导致相同的请求,而返回的索引较少,则正确响应。

elasticsearch日志中的警告在哪里

    [WARN ][http.netty ] [Mother Earth] Caught exception while handling client 
    http traffic, closing connection [id: 0x1433e26c, /127.0.0.1:46573 => 
    /127.0.0.1:9200] java.lang.IllegalArgumentException: invalid version 
    format:indices_list/OBJECTS/_SEARCH?IGNORE_UNAVAILABLE=TRUE HTTP/1.1

curl -XPOST'http://127.0.0.1:9200/ indices_list / objects / _search?ignore_unavailable = true'-d'{“ query”:{“ bool”:{“ must”:{“ term “:{” 79“:” 300“}}}},”尺寸“:” 10“}'`

我无法在Elasticsearch的最新版本中检查这种情况。 如果我能在type_ [x1,x2] _ [y1,y2,y3]之类的索引(我知道'*'和'-')中使用正则表达式,那就太好了。

我看到一些克服此问题的方法:

使用诸如type_x1_ ,type_x2 _ 之类的掩码来减少索引计数,并按请求中的第二个属性进行过滤,但是总有一天属性计数过大的可能性很小。 将请求按索引划分为几个,然后合并响应。 有人知道这个问题吗?也许有一些数量限制,要求长度或其他?谢谢。

0 个答案:

没有答案