2011-02-16 67 views
0

我想創建一個使用學校名稱和玩家名稱的Lucene搜索來返回視頻。我試圖在兩種方法之間做出決定。Lucene查詢 - 加入文檔並保持相關性

方法A是索引視頻文檔中的學校名稱和播放器名稱,並使用布爾查詢來搜索這些字段。

方法B是創建單獨的文檔類型,並提出3個獨特的查詢。

文件:

  • 學校的文件 - 存儲學校ID和索引校名
  • 播放器文件 - 存儲學校ID和sport_id和索引 玩家名稱

3個查詢:

  1. 搜索所有學校文件與學校不適用me
  2. 搜索所有包含玩家姓名的玩家文檔
  3. 從前兩個查詢中搜索視頻中的所有含有school_id和sport_id的內容。

這兩種方法的優缺點是什麼?

回答

3

你幾乎可以肯定地想用方法A.爲了結合兩個索引的相關性得分,你必須重新創建Lucene。

缺點是,如果學校/玩家更改他們的名字,你必須重新索引。這看起來很不尋常。

請記住,如果你有大量的自由文本搜索,Lucene真的只是很好。如果僅僅使用MySQL的自由文本功能(如學校的名稱)或其他常用的rdbms可能會更快,並且實現起來更容易。例如,您不會在重命名重新索引時遇到問題。

+0

方法A是否存在任何性能問題?我有大約10萬個視頻需要索引。 – jon077 2011-02-16 13:58:20