2013-08-15 2 views
0

Я пытаюсь найти документы, содержащие акроним «IT».Поиск двухбуквенных слов в Lucene

Я пробовал поиск с использованием StandardAnalyzer, SimpleAnalyzer и KeywordAnalyzer - тот же результат (без каких-либо ударов).

Насколько я могу судить, «это» не является частью слов остановки по умолчанию?

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

Любая помощь очень ценится! Ура!

ответ

2

Я попытался переиндексацию без любые стоп-слова ...

new IndexWriter(directory, 
       new StandardAnalyzer(Version.LUCENE_30, new HashSet<string>()), // No stop words 
       true, 
       IndexWriter.MaxFieldLength.UNLIMITED); 

... и после этого я смог найти «это» до тех пор, как я использовал тот же тип анализатора (без каких-либо слов остановки) для поиска:

new StandardAnalyzer(Version.LUCENE_30, new HashSet<string>() 
2

Установленный по умолчанию набор пауз включает слово «оно». Она определяется в StopAnalyzer, и это:

final List<String> stopWords = Arrays.asList(
    "a", "an", "and", "are", "as", "at", "be", "but", "by", 
    "for", "if", "in", "into", "is", "it", 
    "no", "not", "of", "on", "or", "such", 
    "that", "the", "their", "then", "there", "these", 
    "they", "this", "to", "was", "will", "with" 
); 

Ни SimpleAnalyzer, ни KeywordAnalyzer использование игнорируемых слов, так что это не работает из-за какой-то другой вопрос, возможно, непонимания, как они разметить или разногласий между индексом и анализаторы времени запроса.

+0

Странно, я не видел «это» среди слов остановки в Lucene 3.0. Наверное, просто пропустил это. Благодаря! –

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