1

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

为了提供更多关于我的具体问题的背景信息,用户将在网站数据库中输入一个字符串,该数据库存储具有各种字段的对象(商店中的项目),例如次要和主要分类(例如,XBox 360 游戏可能与major=video_games 和minor=xbox360 字段及其特定名称一起存储)。我认为在搜索中应该考虑的四个主要字段是对象类型的具体名称、主要、次要和流派,如果有帮助的话。

4

1 回答 1

1

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

这正是 lucene 幕后发生的事情。您可以使用简单的相似性指标,如曼哈顿距离、n 维空间中点的距离等。寻找 lucene 评分公式以获得更多洞察力。

于 2012-01-20T22:58:57.730 回答