2009-08-06 107 views
0

我在Lucene索引中關注了3個文檔。Lucene搜索結果的相關性

  1. 如MBA,你會在執行業務的戰略中扮演了不可或缺的作用,將有法定的帳戶,法規遵從的責任審計,包括銀行的關係,稅務,國庫&現金管理

  2. 作爲工商管理碩士,您將在實施業務戰略方面發揮不可或缺的作用,並將承擔法定賬目,合規性審計,包括銀行業務關係,稅務,財務部門的責任&現金管理

  3. 作爲工商管理碩士,你將在開展業務的戰略中扮演了不可或缺的作用,將有法定的帳戶,法規遵從的責任審計,包括銀行的關係,稅務,國庫&現金管理

我搜索輸入:MBA和我搜索執行Lucene的查詢是:

+((description:mba^3.0) (description:m.b.a.) (description:\"master business administration\")) 

我得到的結果在降序排序按評分結果後,按以下順序:

Document # 3 
Document # 2 
Document # 1 

不應該記錄#1來搜索結果的頂部,因爲我給了它更高的提升,並且該文件包含確切的單詞MBA?

我在這裏失蹤了什麼?

謝謝。

回答

3

匹配查詢字符串佔Doc#3內容的10%左右。但只有#1和#2的一小部分。

您可能需要調整提升以反映替代查詢字符串的不同長度。

+0

感謝你的評論......你能告訴我最終的搜索查詢應該是多少? – 2009-08-06 21:45:09

+0

@Ed:我說的是,還有一個需要考慮的因素,那就是替代查詢的長度與原始長度的比率。因此,由於「主管企業管理」比「MBA」長10倍,所以你應該將其提高到十分之一:'(描述:\「主管企業管理\」0.1)''。這將消除其額外長度造成的偏差。 (這可能是因爲'^ 0.1'太多了 - 你需要試驗以確定長度比和補償因子之間的正確關係。) – RichieHindle 2009-08-06 21:57:09

+0

感謝一噸Richie!這種邏輯適合我! – 2009-08-08 02:32:39

0

如果您使用的是Lucene的StandardAnalyzer,則文檔#1和#2實際上是等效的,兩者都將與術語「mba」匹配。很難猜測爲什麼#3得分最高 - 可能是因爲它匹配多個詞。您可能需要考慮在索引時間處理這樣的同義詞。

我不會猜測字段長度會是一個很大的因素,但是您可能想要做的就是使用IndexSearcher.Explain()來獲得打分的細分 - 這是調試此類問題的最佳方法。