Поиск на нескольких языках в Xapian с помощью стоп-слов?

StackOverflow https://stackoverflow.com/questions/1134194

  •  16-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

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

Чарли

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top