1
我正在創建基於Solr 4.3.0的搜索引擎。 我應該允許我的用戶在同一個搜索字段中輸入位置(例如紐約),就像他們輸入其他搜索關鍵詞(例如餐廳)一樣。 我有一個可能的位置列表。 我可以捕捉位置並將它們映射到一個字段嗎? 最後,我想顯示一個鏈接:「您將地點設置爲紐約,如果您想要移除過濾器,請點擊紐約」。後者將在Solr的標準 - 但我對映射沒辦法......Solr:將搜索詞映射到過濾器
我正在創建基於Solr 4.3.0的搜索引擎。 我應該允許我的用戶在同一個搜索字段中輸入位置(例如紐約),就像他們輸入其他搜索關鍵詞(例如餐廳)一樣。 我有一個可能的位置列表。 我可以捕捉位置並將它們映射到一個字段嗎? 最後,我想顯示一個鏈接:「您將地點設置爲紐約,如果您想要移除過濾器,請點擊紐約」。後者將在Solr的標準 - 但我對映射沒辦法......Solr:將搜索詞映射到過濾器
一個可能的方法(沒有概念搜索)是產生這樣的
搜索盒=「網吧舊金山」所有可能的查詢
而且你應該創建查詢像這樣
BooleanQuery
Occur1 q=cafe&fq=san
Occur2 q=cafe san&fq=francisco
Occur3 q=cafe san francisco&fq=empty
...
OccurN q=cafe&fq=san francisco
...
etc
,並把它們全部爲Occur.SHOULD 所以,你將有很多似是而非的結果,但至少應該作爲一個開始工作方法您。
相關文章/文檔
http://www.lucenetutorial.com/lucene-query-syntax.html - 看看關於BooleanQuery http://en.wikipedia.org/wiki/Concept_search - 總體約概念搜索(這將是您最佳的解決方案,但它會更難實現)
你想爲位置字段獲取所有可能的值並將其顯示在UI上? – Mysterion
不,例如用戶搜索「紐約」。我現在想趕上「紐約」。 solr的「正常」行爲應該是發送q =紐約餐廳。我希望Solr發送:q = restaurant&fq:locationField = New York –
因此,您希望用戶輸入自己的位置,然後應用fq? 如果是的話,這是你想要的,我不明白你的問題。只需閱讀位置並使用fq參數創建SolrQuery等於NY – Mysterion