2016-01-30 4 views
1

Я хотел бы иметь дело с апострофами в Lucene. Приведем пример. У меня есть следующее предложение: «L'arbre est vert». Я хотел бы знать, как я могу создать запрос на слово «arbre» ​​без апострофа. С StandardAnalyzer мне нужно написать «L'arbre», чтобы получить положительный ответ.Lucene: дело с апострофом

Обратите внимание, что есть один вопрос здесь: Lucene Indexing to ignore apostrophes. Но поскольку я совершенно новый в Lucene, я хотел бы иметь пример (фрагмент кода, который работает в Lucene 5.3).

ответ

0

Похоже, вам нужно что-то с более надежным анализом французского языка. Я бы подумал об использовании FrenchAnalyzer. StandardAnalyzer предназначен для обеспечения проходимого языкового агностического анализа. Если вы хотите более интеллектуальный лингвистический анализ определенного языка, вы должны посмотреть на анализатор для этого языка.

для "L'Arbre Est верт", StandardAnalyzer размечает ее в:

  • l'ARBRE
  • Эст
  • верт

Где FrenchAnalyzer дает:

  • arbr
  • vert
+0

Проблема в том, что я должен индексировать несколько языков. Не только французский. Поэтому это решение не подходит для моего использования. Например, на английском языке мы можем иметь «женскую шляпу». Я бы хотел, чтобы запрос «женщина» дал мне положительный ответ. – Thomas

0

Как указано @femtoRgon, вам необходимо решить эту проблему с помощью более подходящего анализа. Вы можете либо изменить анализатор поля в зависимости от языка конкретного документа/запроса, либо вы можете выбрать более продвинутую стратегию, используя языковые индексы или поля.

Посмотрите на Multilingual Search using Lucene для обзора возможных стратегий.

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