Почему Zend Lucene не находит результатов, а Luke - по тому же нечеткому запросу - PullRequest
2 голосов
/ 05 июня 2009

Я кодирую поисковую систему, используя Zend Framework Lucene. Я пытаюсь сделать нечеткий запрос: "Имя: sxample ~" Когда я помещаю это в Люка - это находит 14 результатов (все со словом "образец"). Когда я использую свой PHP-код -

$query = 'name:sxample~';
        $query = Zend_Search_Lucene_Search_QueryParser::parse($query,'utf-8');

        try {
            $hits = $index->find($query);
        }
        catch (Zend_Search_Lucene_Exception $ex) {
            $hits = array();
        }

- массив попаданий пуст. Я думаю, что индексирование в порядке, в то время как Luke и ZF используют одни и те же файлы. Я использую Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8 в качестве моего анализатора. Можете ли вы сказать мне, что не так с моим запросом php или это может быть ошибка ZF?

Привет

Ответы [ 2 ]

8 голосов
/ 05 июня 2009

После исследования я обнаружил, что изменить - если буква с ошибкой написана в первых 3 буквах - то не найдена. Я должен был установить:

Zend_Search_Lucene_Search_Query_Fuzzy::setDefaultPrefixLength(1);
0 голосов
/ 05 июня 2009

Вы пытались поместить var_dump в $ ex внутри оператора catch, чтобы убедиться, что вы не получите исключение, тем самым установив переменную $ hits в пустой массив?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...