2009-12-12 3 views
1

Я строю поисковую систему на основе Java Lucene, которая при добавлении добавляет определенное количество мета-полей, одним из которых является поле sourceId, которое обозначает, откуда была эта запись.Поиск Lucene по числовым значениям

Теперь я пытаюсь извлечь все документы из определенного источника, но индекс, похоже, не может их найти. Однако, если я ищу значение подстановочного знака, все возвращаемые документы имеют правильное значение для этого поля.

Запрос Lucene Я использую довольно прост, в основном index-source-id:1 но не возвращает никаких ударов, если я ищу content:a* я получаю десятки документов, каждый из которых, когда его спросили, возвращающие значение 1 для index-source-id значение, которое является правильным.

Любые идеи?

ответ

1

Я работал только с портом PHP, однако, вы проверили, какой текстовый анализатор вы используете? Этот FAQ, по-видимому, указывает, что, как и PHP-версия, вам нужно использовать другую, которая не удаляет цифры.
Вы можете найти список analyzers here

Для уверенности, вы указали идентификатор для индексации?

+0

Я установил идентификатор для индексации, yup. Я искал список Анализаторов, но не мог найти тот, который сказал, что он имеет дело с цифрами, кажется, что StandardAnalyzer делает, что я считал устаревшим, поэтому, возможно, это может помочь. – Martin

+1

Восстановление индекса, а затем поиск с помощью StandardAnalyzer вместо SimpleAnalyzer сделал трюк! – Martin

+1

Для дальнейшего использования вы не хотите анализировать (или токенизировать) поля id, так как они должны быть атомарными по своей природе, и, поскольку Эйнштейн показал нам со своими приятелями в Манхэттенском проекте, расщепление атомов - это не очень хорошо. .. – Esko

Смежные вопросы