2013-08-28 81 views
1

我將文檔中的類別存儲在文檔中應加權的文檔中,例如餐廳 - 0.5(= 50%),酒吧 - 0.25,音樂 - 0.25。不幸的是,我是新來的solr,並不知道它可能屬於哪個功能。Solr - 如何加權多值字段的字段條目?

的文件是這樣的:

<str name="id">C1</str> 
    <str name="name">Wine</str> 
    <str name="type">Compass</str> 
    <str name="geo">51.049842,13.740707</str> 
    <double name="radius">5.0</double> 
    <arr name="cat"> 
     <str>Restaurant</str> 
     <str>Restaurant</str> 
     <str>Bar</str> 
     <str>Music</str> 
    </arr> 

我怎麼能查詢的預期weitght?除了存儲類似的條目之外,還有其他方法嗎?

回答

1

您可以通過Solr/Lucene的Payload功能實現此功能。 Getting Started with Payloads會給你的一般想法。 您與有效載荷文件將類似於:

<str name="id">C1</str> 
<str name="name">Wine</str> 
<str name="type">Compass</str> 
<str name="geo">51.049842,13.740707</str> 
<double name="radius">5.0</double> 
<arr name="cat"> 
    <str>Restaurant|50</str> 
    <str>Bar|25</str> 
    <str>Music|25</str> 
</arr> 

您索引,你可以有你的文檔的自定義得分文檔後,可以僅根據有效載荷或與Lucene的默認跨度得分的組合。

您可以在lucene-solr/tests找到更多有效負載查詢使用示例。

+0

感謝您的快速回答!我已經發現了這個功能,但我並不真正瞭解如何使用它。我如何修改有效載荷,例如如果它應該是餐廳 - 40,酒吧 - 35,音樂 - 25更新後?查詢將如何? –

+0

你提到過你想在索引時間存儲權值,如果是有效載荷是要走的路。這裏是一個更詳細的,一步一步的教程:http://hnagtech.wordpress.com/2013/04/19/using-payloads-with-solr-4-x/。 –

+0

我必須使用SolrNet,所以我不能使用Solr的Java-API。所以我需要一個教程,顯示如何構建查詢以使用有效載荷等。 –