我必须创建许多多字段,这些字段将是indexed="true"
,而不是stored="false"
。
例如:
<field name="_text_edge_ngram" type="text_edge_ngram" indexed="true" stored="false" multiValued="true" />
我有很多像上面这样的多字段,我知道它不会将它们存储在集合中,但它会根据我给出的类型(ngram、edge ngram和其他(创建不同的令牌。
那么创建代币会增加集合的大小吗?
是的,当您用indexed=true
定义字段时,它将占用空间,索引大小将增加。
字段的indexed=true
越多,占用的空间就越多。
应用于字段的字段类型中还有一个点。
如果应用的是非标记化字段类型,那么索引大小就不像字符串字段类型。
但是,如果您正在应用像ngram
这样的标记化字段类型,那么它将创建太多的标记,因此索引大小将更大。
例如,让我们为您的领域考虑以下内容。
<analyzer>
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="4" maxGramSize="5"/>
</analyzer>
输入文本:";自行车;
创建的令牌:";bicy"bicyc"icyc"icycl"循环"循环"cycle";
在这里,您可以看到单个单词创建了7个标记。它可以根据要求和应用的最小和最大克大小而变化。
这是有助于增加索引大小的另一个原因。
在为你的领域选择领域类型时,你必须非常熟练。
简短回答:是的,大小会增加。
添加一个字段(即使未存储(意味着该字段将有一个新的索引,并且对于每个索引值,文档列表都将匹配(这是Solr存储数据方式的简化(。
它将代表多大的增长取决于你的很多数据。这可能很重要,也可能不重要。。