2017-02-06 20 views
0

如何在索引創建期間指定一個字段應該比另一個字段獲得更多關聯?Cloudant Lucene索引與每個字段的相關性不同

示例:我的文檔帶有標題和說明字段,並且希望標題字段的內容在查詢期間更加重要。

DOC1:標題: 「你好,世界」,介紹道: 「只是一個問候語」 DOC2:標題: 「問候」,介紹道: 「你好,大家你好,你好」

指數( 「默認」 ,doc.title); index(「default」,doc.description);

搜索術語「hello」應該返回doc1,其關聯性高於doc2,因爲即使doc2包含單詞3次,單詞「hello」也出現在標題字段中。

這是如何實現的?

回答

1

您可以在查詢時間(例如,如果索引項分別

index("title", doc.title); 
index("description", doc.description); 

然後在查詢時您可以指定標題得到更多的重量比描述字段

q=(title:hello)^100 OR (description:hello) 

其中^100表明,這個詞是提振。見https://docs.cloudant.com/search.html#query-syntax

+0

謝謝,Glynn。這聽起來像一個選項。當然,我的默認索引使用來自超過10個不同字段的數據,這使得查詢非常冗長,因此我必須將它們全部添加。也許像這樣的東西可以工作:'q =「hello」OR(title:「hello」)^ 100' –

+0

是的,Glynn,這對單個單詞很有效,但很快就會因爲多個搜索詞而變得複雜。 'q = hello world OR((title:hello)^ 100 OR(title:world)^ 100)' 除非我搜索一個確切的字符串,否則我不得不將它們分成單獨的字段組合。否則,只有第一個詞用於特定領域的海蔘。 –

+0

它應該是'q =你好和世界或((標題:你好)^ 100 AND(標題:世界)^ 100)' –