0
我正在運行SOLR 3.6,並且有索引標記的文檔。當用戶輸入搜索詞組時,我希望能夠找到包含該查詢內包含的標籤的文檔。例如,搜索「任何有標籤的文檔」的用戶將匹配具有「小船」作爲標籤的文檔。在SOLR中,我如何查詢以在用戶提供的搜索查詢中查找索引關鍵字?
我知道你可以做通配符搜索,但我需要將通配符應用於solr字段,而不是搜索查詢。
MySQL的等效於此的將是:
SELECT * FROM `documents` WHERE "Any document that has boats tagged" LIKE 'CONCAT('%', `document`, '%');
所以我需要一個SOLR工廠,將允許這種類型的查詢:
*document*:"Any document that has boats tagged"
這很有幫助,但如果標記字段可以是多個單詞。因此,對「超級快艇」的查詢應該將文件與標籤「超級快」和「快艇」相匹配,但它不應該與只有「快」標籤的文件相匹配。 – user983423
然後,您需要在調用Solr之前構建Solr查詢,例如:'q = tags:((「super fast」或「fast boats」)AND -fast)'。這意味着你的應用知道所有的標籤名稱,這可能是不可行的。另一種方法是查看返回文檔的分數(添加請求參數'fl = *,分數'來查看分數)。匹配最大標籤的文檔將獲得最高分數,只有一個標籤匹配的文檔將是最低分數。 – arun