Xapian многоязычный поиск со стоп-словами? - PullRequest
2 голосов
/ 16 июля 2009

У меня есть две базы данных Xapian, давайте назовем одну «EN», а другую «DE», и, скажем, первая содержит некоторые документы на английском, а вторая на немецком языке.

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

Нет способа создания англоязычного стеммера, и применимо ли это только к тем результатам, которые поступают из базы данных "EN"? Нет способа создать пробку с английскими словами, и применить ли ее только к тем результатам, которые поступают из базы данных "EN"?

Может ли это быть правильно?

1 Ответ

2 голосов
/ 05 августа 2009

Стемминг полезен только в том случае, если вы знаете язык текста, который используете. Если вы создали свои базы данных Xapian с основами (то есть базы данных Xapian хранят исходные слова в виде основ), вы бы указали язык.

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

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

HTH - кстати, список рассылки Xapian-Discussion (см. Www.xapian.org) - хорошее место, чтобы задать такой вопрос.

Charlie

...