我正在开发一个搜索数据库的项目,然后根据用户输入的字符串按相关性对搜索结果进行排序。我认为我目前的搜索是相当不错的,但我写的比较结果按相关性排序结果给了我有趣的结果。我不知道该考虑什么相关。我知道这是信息检索的一个重要分支,但我不知道从哪里开始查找按相关性对对象进行排序的搜索示例,并希望得到任何反馈。
为了更多地介绍我的具体问题,用户将在网站数据库中输入一个字符串,该数据库存储具有各种字段的对象(商店中的项目),例如次要和主要分类(例如, XBox 360游戏可能与major = video_games和minor = xbox360字段及其特定名称一起存储。我认为在搜索中应考虑的四个主要字段是对象类型的特定名称,主要,次要和类型,如果有帮助的话。
答案 0 :(得分:1)
如果您不想使用lucene / Solr,您可以始终使用距离度量来查找查询与从数据库检索的行之间的相似性。获得分数后,您可以对它们进行排序,它们将被视为按相关性排序。
这就是lucene背后的确切情况。您可以使用简单的相似性指标,如曼哈顿距离,n维空间中的点距离等。寻找lucene评分公式以获得更多洞察力。