Lucene查询——连接文档并保持相关性
我正在尝试创建一个Lucene搜索,使用学校名称和玩家名称返回视频。我正试图在两种方法之间做出选择 方法A是索引视频文档上的学校名称和播放器名称,并使用布尔查询来搜索这些字段 方法B是创建单独的文档类型并进行3次唯一查询 文件:Lucene查询——连接文档并保持相关性,lucene,full-text-search,Lucene,Full Text Search,我正在尝试创建一个Lucene搜索,使用学校名称和玩家名称返回视频。我正试图在两种方法之间做出选择 方法A是索引视频文档上的学校名称和播放器名称,并使用布尔查询来搜索这些字段 方法B是创建单独的文档类型并进行3次唯一查询 文件: 学校文档-存储学校id并索引学校名称 玩家文档-存储学校id和运动id以及索引 玩家姓名 这3个问题: 搜索具有学校名称的所有学校文档 搜索具有玩家名称的所有玩家文档 在视频中搜索前两个查询中具有school_id和sport_id的所有内容 这两种方法的优缺点是什
- 学校文档-存储学校id并索引学校名称
- 玩家文档-存储学校id和运动id以及索引 玩家姓名
这两种方法的优缺点是什么?你几乎肯定会选择方法A。为了结合两个指数的相关性得分,你必须重新设计Lucene 不利的一面是,如果学校/球员更改了他们的名字,你必须重新编制索引。但这似乎很不寻常
请记住,只有在有大量自由文本可供搜索的情况下,Lucene才是真正优秀的。如果只是几个字(比如学校的名字),使用MySQL的自由文本功能或您喜欢的其他rdbms可能也会一样快,并且更容易实现。例如,在重命名时重新编制索引不会有问题。您几乎肯定希望使用方法A。为了结合两个索引的相关性得分,您必须重新设计Lucene 不利的一面是,如果学校/球员更改了他们的名字,你必须重新编制索引。但这似乎很不寻常
请记住,只有在有大量自由文本可供搜索的情况下,Lucene才是真正优秀的。如果只是几个字(比如学校的名字),使用MySQL的自由文本功能或您喜欢的其他rdbms可能也会一样快,并且更容易实现。例如,重命名时重新编制索引不会有问题。方法A是否存在任何性能问题?我有大约100000个视频要索引。@jon077:No.100k是一个非常小的索引,方法a是建议的索引方式。方法a有性能问题吗?我有大约100000个视频要索引。@jon077:No.100k是一个非常小的索引,方法a是建议的方法。