配置 Zend Lucene 以使搜索结果更相关的最佳实践是什么?
我有以下字段和文档类型
productname (Text)
description (Text)
category (Keyword)
请提供一些示例代码。
配置 Zend Lucene 以使搜索结果更相关的最佳实践是什么?
我有以下字段和文档类型
productname (Text)
description (Text)
category (Keyword)
请提供一些示例代码。
您的问题让我想到了两个概念,但不确定您到底在寻找什么。
分数:指示文档与搜索查询匹配程度的评级。从手册:
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"
这有帮助吗?
从任何搜索引擎获取相关结果都是一项艰巨的工作。由于您指定的详细程度,很难给您任何具体的建议。我建议你从这篇论文开始。