2014-02-18 25 views
0

我有3場在我Solr的索引數據庫和我搜索兩個查詢,但是不同的領域等級值變得不同,而給Solr中查詢相同的提升值

索引數據

僱員:220232個

pskills:JSP,Servlet的,HTML,Java的

oskills:DB2,甲骨文,JDBC,JNI,JSP,VC++,C,C++,JAVA,SQL,XML,Palm操作系統,UNIX,PALM OS,AIX,Linux,Solaris和Windows 2000中, TCP/IP,IP,ID,資產負債管理,企業應用集成

schema.xml中

<field name="employeeid" type="string" indexed="true" stored="true" required="true" /> 
<field name="pskills" type="text" indexed="true" stored="false" required="false" /> 
<field name="oskills" type="text" indexed="true" stored="false" required="false" /> 

查詢1 =僱員:220232 AND(pskills:(( 「Java」 的))^ 3000.00)

分數:0.6169528

查詢2 =僱員:220232 AND(oskills:((的 「java」))^ 3000.00)

分數:0.32307756

我的問題是這兩個領域夏暉ng「Java」關鍵字,那麼爲什麼給定不同的值

回答

1

很多原因!特別是:

  • 如果字段的長度不同,分數會受到影響(在較短場比賽進行稱重更重)(絕對是一個因素在這裏
  • 不止一個匹配的發現之一(例如,java在oskills中出現一次,但例如在pskills中出現兩次)(在這裏看起來不是這種情況,但是承載了
  • 術語java更多一個字段中的所有文檔都比另一個字段通用。例如,如果在所有文檔中,「java」出現在1000個文檔的oskills中,但它只出現在100個文檔的pskills中,則由於idf,pskills中的匹配得分更高。 (不知道這是否有效果,因爲我不知道什麼是在文件其餘都)

有關Lucene的進球一些文檔,請參閱TFIDFSimilarity

您得到的分數特定於查詢以及索引在運行時的狀態。它們不打算與其他查詢的分數進行比較。