2013-07-03 3 views
0

У меня есть схема solr, где я храню zipcodes в текстовом поле.Solr - Поиск неполных чисел

Но solr получает результаты только в том случае, если я ищу весь почтовый индекс. Он не получает никаких результатов, если zipcode не завершен.

В примере:

I типа 12345 - Solr получает почтовый индекс 12345.

I Тип 1234 - Solr не получает каких-либо результатов.

У кого-то из вас есть идея, как решить эту проблему?

Должен ли я использовать любые токенизаторы на этом поле или что-то еще?

THX за помощью

+0

Поиск с джокера в конце то есть 'д = поле: 1234 *' – arun

ответ

3

Проверки на EdgeNGramFilterFactory фильтр

<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="25" side="front"/> 

EdgeNGramFilterFactory формирует край граммы для маркеров, например,

12345 будет генерировать ->12, 123, 1234, 12345 .....

Вы можете использовать это во время индекса для создания маркеров. Итак, когда вы ищете 1234, документы с 12345 будет соответствовать

+0

Я хотел бы предложить использовать EdgeNGramFilterFactory для временного анализатора индекса только. – Fuxi

+0

Yup как указано в ответе на его использование только для использования по времени индекса – Jayendra