Я создал Lucene (3.0.1) индекса на колонку для поиска с в тексте, на тестирование по этому тексту:поиска в индексе Lucene
$GLD is a great example of why it does not make sense EVER to try and catch a falling knife.
Это дает мне результат, если при поиске по ключевому слову "falling"
но Я не подвожу ничего о поиске по "$GLD"
Я использую standardAnalyzer:
String longString = "$GLD is a great example of why it does not make sense EVER to try and catch a falling knife."
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);
doc.add(new Field("data", longString, Store.YES, Field.Index.ANALYZED));
Поскольку Field.Index.ANALYZED
установлена, она должна создавать маркеры и $GLD
. Анализатор удалит стоп-слова из текста, и слово $GLD
также будет удалено в процессе.
Вы указываете один и тот же «Анализатор» при создании своего «QueryParser»? «$ GLD», скорее всего, преобразуется (я верю в «gld»), и если при индексировании и в QueryParser используются разные анализы или разные версии, конечные результаты анализа могут не совпадать. – femtoRgon
Я не определяю 'QueryParser' и' Analyzer' в поиске запроса, я использую 'IndexSearcher searcher = новый IndexSearcher (каталог); ',' TermRangeQuery' и 'TermQuery'. Но он смог выполнить поиск по gld, спасибо за помощь. –