我有一个奇怪的问题,我需要一些帮助。
我有一个包含 600 万个文档的数据集,每个文档由近 8000 个单词组成。每个单词始终是一个数字,单词/数字由空格分隔。
在索引所有数据后(我现在只索引一个子集)我需要按数字列表执行查询,但我只想要包含所有这些数字的文档(条件是 AND)。
我想出了这个:
String [] codes_vec = ARRAY_WITH_500_STRINGS_ALL_NUMBERS;
BoolQueryBuilder qBuilder = QueryBuilders.boolQuery();
for (int i =0; i < codes_vec.length; ++i)
{
qBuilder = qBuilder.must(QueryBuilders.matchQuery("code", codes_vec[i]));
}
问题是,这似乎效率很低,我怎样才能加快搜索速度?有没有更好的查询 ElasticSearch 的方法在我的情况下会更快?
亲切的问候,泽玛丽亚