【发布时间】:2013-09-30 02:54:50
【问题描述】:
我有一个奇怪的问题,我需要一些帮助。
我有一个包含 600 万个文档的数据集,每个文档由近 8000 个单词组成。每个单词总是一个数字,单词/数字之间用空格隔开。
索引所有数据后(我现在只索引一个子集)我需要按数字列表执行查询,但我只想要具有 all 这些数字的文档(条件是 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 的方法在我的情况下会更快?
亲切的问候, 泽玛丽亚
【问题讨论】:
-
你知道这500个字符串是什么吗?当它们在那里创建时,你能在索引中标记它们吗?
-
您的索引是如何组织的?
-
那么索引真的很简单,基本上就是一个文档id + 字符串列表。
标签: java search lucene full-text-search elasticsearch