2011-12-27 106 views
1

我正在研究通过数据库搜索的项目,然后根据用户输入的字符串按相关性对搜索结果进行排序。我认为我目前的搜索是相当不错的,但我写的比较结果相关性的比较结果给了我有趣的结果。我不知道该考虑什么。我知道这是一个很大的信息检索分支,但我不知道从哪里开始找到按相关性对对象进行排序的搜索示例,并且很感谢任何反馈。如何按相关性对搜索结果进行排序?

为了更多地了解我的具体问题,用户将在网站数据库中输入一个字符串,该数据库用不同的字段存储对象(商店中的商品),例如次要和主要分类(例如,一个XBox 360游戏可能会与major = video_games和minor = xbox360字段以及其特定名称一起存储)。我认为应该在搜索中考虑的四个主要领域是对象类型的具体名称,主要,次要和流派,如果有帮助的话。

+1

Lucene做到了。如果你不想使用它,你可以看看他们的代码的想法。 – Bill 2011-12-27 03:35:45

+1

谢谢奥利!我已经看过Lucene;我认为这可能对我的目的有点沉重,但我会进一步研究它。 – Salmontres 2011-12-27 05:04:16

+1

所以使用Solr。一个包含许多漂亮功能的Lucene。 – 2011-12-27 20:10:16

回答

1

如果您不想使用lucene/Solr,则可以始终使用距离度量来查找查询与从数据库中检索的行之间的相似度。一旦你得到分数,你可以排序他们,他们将被视为按相关性排序。

这就是lucene场景背后发生的情况。您可以使用简单的相似性指标,如曼哈顿距离,n维空间中的点距离等。查找lucene评分公式以获取更多信息。

相关问题