Zend Lucene поиск релевантности - PullRequest
0 голосов
/ 28 мая 2010

Как лучше всего настроить Zend Lucene для повышения релевантности результатов поиска?

у меня есть следующие поля и тип документа

 productname (Text)
 description (Text)
 category (Keyword)

Пожалуйста, дайте несколько примеров кодов.

Ответы [ 2 ]

2 голосов
/ 28 мая 2010

Есть два понятия, которые приходят мне на ум с вашим вопросом, но не совсем точно, что вы ищете.

Оценка : рейтинг, который показывает, в какой степени документсоответствует поисковому запросу.Из руководства :

Zend_Search_Lucene использует те же алгоритмы скоринга, что и Java Lucene.Все результаты поиска в результатах поиска упорядочены по умолчанию.

$hits = $index->find($query);
foreach ($hits as $hit) {
    echo $hit->id;
    echo $hit->score;
}

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

Повышение терминов : Используется для влияния на релевантность отдельных терминов в запросе.Еще раз процитировав руководство :

Повышение, позволяет контролировать актуальность документа, повышая отдельные термины.Например, если вы ищете

PHP framework

и хотите, чтобы термин «PHP» был более релевантным, увеличьте его, используя символ ^ вместе с коэффициентом усиления рядом с термином,Вы должны набрать:

PHP^4 framework

Это сделает документы с термином PHP более актуальными.Вы также можете увеличить фразы фразы и подзапросы, как в примере:

"PHP framework"^4 "Zend Framework"

Помогает ли это вообще?

0 голосов
/ 28 мая 2010

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

...