Модуль CPAN для анализа условий поискового запроса в стиле Google? - PullRequest
2 голосов
/ 03 марта 2011

Я хочу превратить строку запроса в стиле:

my $query = q{recipe "with sauce" +eggs -pastrami};

В программный запрос SQL :: Abstract , который будет использоваться в DBIx :: Class.

$where = { -and=>[ 
     'ingredients' =>[ { -like=>'%recipe%' }, { -like=>'%with sauce%' } ],
     'ingredients' =>{ -like=>'%eggs%' },
     -not => { 'ingredients => { -like => '%pastrami%' } }
]}; 

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

Я ищу какой-то уровень техники по этому вопросу, основные вещи.Возможно, модуль CPAN или библиотека C, которую можно превратить в модуль CPAN.Есть ли стандарт для такой вещи?

1 Ответ

5 голосов
/ 03 марта 2011

Базовый анализатор запросов в KinoSearch делает именно это (хотя логический запрос по умолчанию для объединения частей - ИЛИ, он может быть установлен на И).У вас есть несколько способов приблизиться к основам, типам токенов и подстановочным знакам, но они не встроены.У этого есть кривая изучения, и документы немного тонкие, но я очень рекомендую пакет.Помимо хорошей работы и невероятно быстрой работы, автор чрезвычайно отзывчив на отзывы, вопросы и сообщения об ошибках.

...