2017-08-11 30 views
1

我有文件,其中一些条款可能包含数千个可能值(这是不同的 - 跨区域)Elasticsearch大项词典

例如:

{ 
 
    "term_1":["ssd2dfff","ds2fefd","zwdfdf",...], 
 
    "term_2":["amm22d3ff","amm2daccfd","man2ewfsd",...] 
 
    
 
}

我担心这会造成大字典并可能导致性能影响

+0

这里有什么问题?将这些文档存储到Elasticsearch是可以的,但执行这些条款查询则是另一回事。 – NikoNyrh

+0

我想了解一个非常大的语言语料库有什么影响。 我很想知道使用哪种算法从索引/段中查找术语 –

回答

0

没有真正在这里得到问题。由于成千上万的可能性,您可能担心它会在任何给定的点上崩溃。我不知道是否会出现这种情况,但这article这里可能会有助于你了解什么可能或可能不会在Elasticsearch工作

+0

感谢您的快速回复。 我担心索引这个术语会包含很多术语(可能比中文语料库更大) 我很想知道使用哪种算法从索引/片段查找术语 –

0

正如其他答案指出的,一个大问题可以是mapping explosion。当每个记录中有一些模式或随机生成的密钥时,会发生这种情况。如果你有嵌套的深层结构,它会变得最糟糕。这种爆炸背后的原因是elasticsearch以元数据的形式存储每种类型的映射,其中每个键都有其数据类型存储。在我的情况下,记录看起来像下面和制造的问题

{ 
    "term1": { 
    "04980000002RxJ9": 0.5833333333333334, 
    "04980000002RxJB": 0.4166666666666667 
    }, 
    "term2": { 
    "04980000002RxJ9": "ARR", 
    "04980000002RxJA": "Services", 
    "04980000002RxJB": "Renewals" 
    } 
} 

但是你的数据看起来不错,除非你没有字词1,词条2,TERM3 ......怎么回事作为一个系列。你不必担心字典中的值,因为如果它的数组不在意值。

+0

您能详细说明一下吗? ? 搜索一个术语作为术语语料库大小的计算惩罚是什么? –