2016-08-16 8 views
0

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

Мы установили Xapian-Omega на Linux Server (Deb 7) и успешно прошли тестирование с успехом. Однако мы не уверены в том, как можно использовать или использовать даже Wild Cards или Regular Выражения с Xapian-Omega.

Мы читаем, что для Xapian необходимо включить опцию Wild Card «Флаги QueryParser» Может ли кто-нибудь прояснить это? т.е. объясните или укажите страницу с примером или двумя.

Но мы не видели много информации о примерах с Omega CGI и, хотя этот последний работает хорошо, варианты диких карт (например, * для общего джокера и? Как один символ), не кажется, работают как ожидалось по умолчанию, и они будут полезными, хотя стебли и подстроки и т. д. могут быть функциональными.

Например: Было бы интересно, чтобы иметь возможность использовать стандартные простые дикие поиски полукокса с определенной точностью, такие как: медик * для медицины медицинского лекарственного или с? для одиночных символов

Может ли Regexp распознаваться с помощью Omega? например: sep [ae] r [ae] te (\ w +)? или поиске структурированных форматов, таких как электронная почта или кредитные карточки чисел или определенных типов формул в научно-исследовательских работах и ​​т.д.

В записке от Олли Беттс давно (Dev Список рассылки) относительно этого одно предложение было Grep индекс файл, но это будет победить преимущество RAD Omega.

Есть примеры поиска с использованием Omega с дикими картами или регулярными выражениями бы оценивать ... даже указание на странице, где информация по этой теме хорошо представлена ​​ с примерами, иллюстрирующими, как разработать расширенный поиск используя Ксапиан был бы очень рад (возможно, PHP или Python).

(Мы не касается на данный момент о возможном существенного увеличения размера размера индекса или в время для индексирования архива)

ответ

0

Вы можете включить правые-символы (такие как «медик * ") в Омеге, используя $set{flag_wildcard,1} (распространяется на Omegascript documentation), что позволяет использовать FLAG_WILDCARD. В руководстве пользователя есть раздел, посвященный using wildcards.

Xapian не обеспечивает поддержку поиска регулярных выражений, хотя в теории я считаю, что можно было бы поддерживать, если бы потенциально дорого (в зависимости от регулярного выражения). Он должен будет запускать регулярное выражение против неработающих терминов в базе данных, а затем загружать их в поиск. Там, где становится трудно, если регулярное выражение расширяется до многих терминов (например, просто «а» как регулярное выражение).Там также есть некоторые тонкости, чтобы сделать его эффективным; легко перейти через список терминов к чему-то с постоянным префиксом, и вы бы хотели воспользоваться этим, если это возможно.

Для вашего примера sep[ae]r[ae]te(\w+)?, это звучит, как вы на самом деле хотите сочетание spelling correction (для к.э. замены, которые вы можете включить использование $set{flag_spelling_correction,1}) и stemming (для длинных писем после «те», Omega по умолчанию английский язык, вытекающие , но that can be changed), либо поддержка подстановочных знаков, либо поддержка частичного совпадения.

Если вам нужны регулярные выражения для вашего прецедента, тогда я предлагаю поднять его на xapian-discuss mailing list. Xapian продвигался с момента последнего обсуждения, и я считаю, что сейчас будет легче создать такую ​​поддержку, чем тогда.

0

James Ayatt: Спасибо за ваш ответ и помощь, мои извинения за этот запоздалый ответ, отвлечение на другую работу. Мы уже видели страницу Omegascript, но нам было непонятно, как использовать эти опции с интерфейсом CGI. Кроме того, использование *, кажется, для хвостов, это правильно? т.е. не для внутренних групп слов, например: omeg * ipt; бывают случаи, когда вариант стебля будет недостаточным. Мы не видели возможности для одиночных диких символов, иногда представленных? в некоторых поисковых системах. Не могли бы вы прокомментировать здесь?

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

В некоторых случаях было бы интересно включить некоторый тип параметра регулярного выражения для извлечения текстовых форм, например упомянутых. Быстрое извлечение такого текста, возможно, вместе с некоторым окружающим текстом может быть очень полезным. Мы обязательно попробуем ваше предложение с рассылкой.

Еще раз спасибо.

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

  • Нет связанных вопросов^_^