Solr с большими целочисленными списками

Может ли solr обрабатывать большие списки целых чисел в документах?

Поиск будет осуществляться исключительно по точному совпадению. Большинство документов будут иметь ~100 элементов списка, некоторые будут иметь ~1k и ‹ 10 до 25k.

Дополнение: Какая схема лучше всего подходит для больших списков?

Моя идея заключалась в индексированном, а не сохраненном многозначном поле. Тип может быть TrieLongField с точностью Step="0". Другая идея заключалась в том, чтобы хранить данные в виде обычного текста с помощью токенизатора слов.


person edlerd    schedule 18.11.2016    source источник


Ответы (1)


Я бы использовал многозначное целочисленное поле, это должно дать хорошую производительность:

  <fieldType name="int" class="solr.TrieIntField" 
      positionIncrementGap="0" 
      precisionStep="0" 
      omitNorms="true" 
      omitTermFreqAndPositions="true"          
      multiValued="true" stored="false"
  />
person Hugo Zaragoza    schedule 18.11.2016
comment
звучит хорошо, спасибо! есть ли у вас опыт, если solr ведет себя с такими полями в документах? т. е. гораздо большее использование оперативной памяти или аналогичные эффекты. - person edlerd; 18.11.2016
comment
Я передумал, вы теряете некоторую производительность при преобразовании ключа int в словарь, если вы сохраняете в виде простого текста, особенно если у вас очень много возможных целочисленных значений. :) Я никогда не делал то, что вы предлагаете, но SOLR должен работать хорошо... это проще, чем поиск текста :) - person Hugo Zaragoza; 18.11.2016