我有一個奇怪的問題,我需要一些幫助。如何搜索平均每個8000字的數百萬個文檔?
我有一個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的方法,在我的情況下會更快?
親切的問候, 澤·瑪麗亞
你知道這500個字符串是事先?你可以在索引中標記它們嗎? – femtoRgon
你的索引是如何組織的? –
那麼索引真的很簡單,基本上有一個文件id +字符串列表。 – user361526