首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >扩展/更改Zend_Search_Lucene搜索方式

扩展/更改Zend_Search_Lucene搜索方式
EN

Stack Overflow用户
提问于 2010-05-12 12:21:52
回答 1查看 208关注 0票数 0

我目前正在使用Zend_Search_Lucene索引和搜索一些文档,目前大约在1000个左右。我想要做的是改变引擎在文档上得分的方式,而不是当前的默认情况。

Zend_Search_Lucene的得分取决于文档中的点击次数,因此,如果文档中有10个单词匹配的PHP,那么它的得分将高于只有3个匹配的PHP的文档。我试图做的是传递一些关键字和分数取决于这些关键字的命中。例如:

我传递了5个关键词:PHPMySQLJavascriptHTMLCSSE 213。一个文档与这些关键词有3个匹配,一个文档有所有4个匹配,其中4个匹配得分最高。文件中这些词语的数量与我无关。

现在我已经快速地看了一下Zend_Search_Lucene_Search_Similarity,但是我不得不承认,我不知道如何使用它来实现我所追求的目标。

我想要做的是使用Lucene,还是有更好的解决方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-12 15:22:25

对于我在手册的相似段中所理解的内容,我首先要扩展默认的相似类,以覆盖tf (术语频率)方法,这样它就不会改变分数:

代码语言:javascript
运行
复制
class MySimilarity extends Zend_Search_Lucene_Search_Similarity {    
    public function tf($freq) {
        return 1.0; // overriding default sqrt($freq);
    }
}

这样就不应该考虑到匹配的数量。你觉得这就够了吗?

然后,将其设置为索引之前的默认相似算法:

代码语言:javascript
运行
复制
Zend_Search_Lucene_Search_Similarity::setDefault(new MySimilarity());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2818678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档