Zend Framework - Поиск Lucene для точной фразы - PullRequest
0 голосов
/ 20 августа 2009

Есть ли способ запросить индекс Zend_Search_Lucene для точного соответствия?

$keyword = 'Summer 2009';

когда я использую:

$myIndex->find($keyword) 

я также получаю "Лето 2009, лето 2009"?

Ответы [ 2 ]

0 голосов
/ 17 июня 2011

Ваш фрагмент кода приведет к запросу запроса, при котором Zend Search сгенерирует набор токенов, которые будут опробованы для всех полей индекса. Это потому, что если вы передаете строку в find (), она передается в Query_Parser ().

Вам необходимо специально создать Фразовый запрос для этой ситуации.

Это будет выглядеть примерно так:

   $query = new Zend_Search_Lucene_Search_Query_Phrase(array('Summer', '2009'));
   $index->find($query);

http://framework.zend.com/manual/en/zend.search.lucene.query-api.html содержит больше информации.

0 голосов
/ 20 августа 2009

Запрос на строку в двойных кавычках должен сделать это:

$keyword = '"Summer 2009"';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...