2017-06-14 75 views
0

假設1000個文檔中只有10個文檔有一個名爲limitedEdition的字段,它是否會爲其他990文檔添加某種開銷,而該文檔沒有該字段limitedEdition的任何值?那些文檔最終會在elasticsearch索引中有一個空值/引用,就像在sql中添加一個可爲空的列?elasticsearch中的可選字段

{_id:1,category:[4],feature:[1,2]}, 
{_id:2,category:[5],feature:[3,5]}, 
{_id:3,category:[7],feature:[2,4]}, 
..... 
{_id:10,category:[5],limitedEdition:1000} 

的可轉位字段成長在我的項目,所以我不得不重新考慮這些稀疏列是否應存放在elasticsearch或重組等領域。

+0

Dupe:https://stackoverflow.com/questions/36333037/multiple-indexes-or-multiple-mapping-types-for-sparse-documents –

回答

1

儘管這是重複的,但在這方面還有一些近期的發展。使用Lucene 7(Elasticsearch 6.0的一部分),爲稀疏性DOC值提高了很多:

有了這些變化,你終於只需支付您實際使用DOC值使用,在索引大小,索引性能等。這與索引的其他部分(如發佈,存儲字段,術語向量等)相同,並且這意味着具有非常稀疏的doc值的用戶不再看到合併時間過長,或者合併時索引變得意想不到。

http://blog.mikemccandless.com/2017/03/apache-lucene-70-is-coming-soon.html

您可以在https://home.apache.org/~mikemccand/lucenebench/sparseResults.html上看到更改。