我想了解背景中到底發生了什麼。Lucene的多字段索引究竟是什麼
給定倒轉索引的簡化模型(忘記位置和分數): 對於每個單詞都有一個文檔ID的排序列表。 多字詞查詢與那些排序列表相交以產生另一個這樣的列表。 (最後有排名)
例如
word1: 1 3 7 9 10 11 ...
word2: 2 3 4 9 10 12 ...
以下對字段的理解是否正確?
不同的字段表示不同的索引空間或至少不同的列表。例如具有領域抽象和身體可能最終在這樣一個情景:
abstract:word1 7 10 ...
body:word1 1 3 9 10 11 ...
abstract:word2 3 4 ...
body:word2 1 3 9 10 12 ...
這種理解是否正確?如果不是,這些領域在底層倒排指數方面是什麼?我找不到任何明確說明它是如何在內部完成的文檔。
除此之外,我想知道是否有一些功能支持搜索所有/任何字段。如果像我認爲的那樣實施,這應該是麻煩的或者需要通過保持如上所述的列表來冗餘。通過完整的單詞列表的子範圍來實現字段當然可以表現得更好。
很高興知道Lucene實際上做了什麼。
對於子範圍,我的意思是沿着每個單詞的單個發佈列表(在所有字段上)以及原始單詞列表中每個字段的附加列表,用於適合該字段的那些發佈。我可以看到這有幾個問題,但我想確定。 –