Lucene Queries - 加入文档并保持相关性

时间:2011-02-16 02:38:52

标签: lucene full-text-search

我正在尝试使用学校名称和播放器名称创建Lucene搜索以返回视频。我试图在两种方法之间做出决定。

方法A是索引视频文档中的学校名称和玩家名称,并使用布尔查询来搜索这些字段。

方法B是创建单独的文档类型并进行3次唯一查询。

文件:

  • 学校文件 - 存储school_id并索引学校名称
  • 播放器文档 - 存储school_id和sport_id以及索引 球员姓名

3个查询:

  1. 搜索所有具有学校名称的学校文件
  2. 搜索所有具有玩家姓名的玩家文件
  3. 使用前两个查询中的school_id和sport_id搜索视频中的所有内容。
  4. 这两种方法的优点/缺点是什么?

1 个答案:

答案 0 :(得分:3)

你几乎肯定想要使用方法A.为了结合两个索引的相关性分数,你必须重新发明Lucene。

缺点是如果学校/玩家改名,你必须重新索引。这看起来很不寻常。

请记住,如果你有大量的自由文本要搜索,Lucene真的很好。如果它只是使用MySQL的自由文本功能的几个单词(如学校的名称)或您的其他喜欢的rdbms可能会同样快,并且将更容易实现。例如,在重命名时重构索引不会出现问题。