Python Elasticsearch:如何处理非常长的查询字符串
考虑以下示例:Python Elasticsearch:如何处理非常长的查询字符串,python,
elasticsearch,Python,
elasticsearch,考虑以下示例: NUMBER_KEYWORDS = 3000 es = Elasticsearch("127.0.0.1",port=9200,timeout=120,index="example_index",http_auth=AUTH) query = {'query': {"bool": { "should": [{"match": {"value.keyword": v}} for v in ["keyword" for i in range(NUMBER_KEYWORDS)]]}}}
NUMBER_KEYWORDS = 3000
es = Elasticsearch("127.0.0.1",port=9200,timeout=120,index="example_index",http_auth=AUTH)
query = {'query': {"bool": { "should": [{"match": {"value.keyword": v}} for v in ["keyword" for i in range(NUMBER_KEYWORDS)]]}}}
es.search(index="example_index", body=query, size=10000)['hits']['hits']
此操作失败,但有一个例外:
RequestError(400, 'search_phase_execution_exception', 'failed to create query: [...]
然而,如果我将NUMBER\u关键字设置为较小的数字(比如1000),则不会失败
在Elasticsearch python接口中处理非常大的查询字符串的好方法是什么?Lucene的布尔条件限制为1024
您必须更改index.query.bool.max_子句_计数值
但是,你真的确定你必须提出这样的要求吗?最好使用数组或文本作为示例,并在其上进行匹配 Lucene的布尔条件限制为1024
您必须更改index.query.bool.max_子句_计数值
但是,你真的确定你必须提出这样的要求吗?最好使用数组或文本作为示例,并在其上进行匹配 我愿意接受任何建议-在这种情况下使用什么样的查询更好?用一些简短的示例详细说明您的上下文。您如何存储文档?你在寻找什么样的关键词?等…文档有三个字段:键
(字符串)、值
(字符串)、内容
(字符串列表)。我有一个值列表lvalues
,我想要value
字段与lvalues
中的一个值匹配的每个文档,我愿意接受任何建议-在这种情况下使用哪种查询更好?用一些简短的示例详细说明您的上下文。您如何存储文档?你在寻找什么样的关键词?等…文档有三个字段:键
(字符串)、值
(字符串)、内容
(字符串列表)。我有一个值列表lvalues
,我想要value
字段与lvalues