Представьте себе, что все документы имеют следующие поля:Lucene не проиндексированные поля, регистр без учета регистра?
Field("Id", Field.Store.YES, Field.Index.NOT_ANALYZED, Field.TermVector.NO));
Field("From", Field.Store.YES, Field.Index.NOT_ANALYZED, Field.TermVector.NO));
Field("To", Field.Store.YES, Field.Index.NOT_ANALYZED, Field.TermVector.NO));
Field("Source", Field.Store.YES, Field.Index.NOT_ANALYZED, Field.TermVector.NO));
Field("Target", Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.YES));
Одним из требований, у меня есть, чтобы повторно использовать документы, если С, Для и Источник точно так же (чувствительно к регистру).
Однако они не анализируются (например, с помощью StandardAnalyzer, который сокращает сроки до индексирования).
- Можно ли использовать регистр без учета регистра, не анализируемый полей?
- Как насчет
Field
Значения имен, могу ли я также сделать случай Нечувствительный поиск к «От», «от», «ОТ»?
Общая информация: Я хочу выполнить поиск без учета регистра.
Пример: «From: something», «from: Something», «FROM: SOMething», «from: SOMETHING» -> получить тот же набор результатов.
Если я проанализирую все поля с ключевым словомTokenizer, которые раньше не анализировались, будет ли он потреблять намного больше места, учитывая, что некоторые из них могут иметь размер 2 абзаца текста. Идея этого заключается в том, чтобы иметь возможность выполнять нечеткое совпадение и точное совпадение в поле источника для ex. У меня есть тот же текст в поле SourceExact, который не анализируется, и поле SourceFuzzy анализируется (StandardAnalyzer). Вот почему я хочу выполнять независимые от регистра запросы в поле SourceExact. –
@pelican_george - Нет, не должно влиять на пространство. Анализ поля с помощью KeywordAnalyzer и оставление поля неанализируемого поля практически идентичны. Добавление «LowerCaseFilter» могло бы теоретически уменьшить размер индекса, но на практике с длинными полями, вероятно, вообще не повлияет на размер. – femtoRgon