2017-09-23 103 views
0

我正在使用Solr爲我們的電子商務應用程序提供分面功能。它以這裏描述的標準方式實現https://wiki.apache.org/solr/SimpleFacetParameters#Tagging_and_excluding_FiltersCase In-Sensitive Solr查詢分面和濾波器查詢

在應用程序方面,我們使用了由Solr返回的方面來提供UI上的過濾體驗,並且使用方面作爲參數構建URL。然後使用這些參數將fq的分面參數傳遞給Solr。

這很好,除了我們的URL是區分大小寫的,因爲我們更改爲小案例時,facet查詢不再有效,並且給我們提供了未定義的字段錯誤。

解決此問題的一個解決方案是將所有方面索引爲小型案例。但是由於這些方面是由Solr構建的,所以我們也可以在小的情況下得到結果。然後在前端,我們放棄了原來的情況,並且它不能由CSS來管理,因爲我們需要保留這種情況的許多方面,比如RAM應該顯示爲RAM而不是Ram或ram。同樣,microSD需要顯示爲microSD而不是Microsd或microsd。

我們這裏https://wiki.apache.org/solr/SimpleFacetParameters#Tagging_and_excluding_Filters看到的請求,在小的情況下做出

q=mainquery&fq=status:public&fq=**doctype:pdf**&facet=on&**facet.field=doctype** 

但結果顯示在適當的情況下

=== Document Type === 
    [ ] Word (42) 
    [x] PDF (96) 
    [ ] Excel(11) 
    [ ] HTML (63) 

對於我們來說,這些要求不工作,並給我們的錯誤爲未定義領域!

我們是否做錯了,所以Solr在提出請求時工作區分大小寫,而不是按照這個幫助文檔?或者Solr幫助文檔本身存在錯誤?

+0

可能重複[不區分大小寫Solr查詢facet,但保留大小寫的結果](https://stackoverflow.com/questions/46376518/case-insensitive-solr-query-for-facets-but-preserve-case-爲結果) – MatsLindh

+0

這個問題是由我發佈。然而,這是一個具體面對不工作按其DOC! – Krunal

+0

這是(非常)舊的,沒有維護的wiki頁面,不是一個體面的參考。使用當前的參考文檔。這個圖只是一個UI如何呈現的例子,在過濾時你仍然必須使用正確索引的版本。 – MatsLindh

回答

0

這是(非常)舊的,未維護的wiki頁面,不是一個體面的參考。使用當前的參考文檔。這個圖只是一個UI如何呈現的例子,在過濾時你仍然必須使用正確索引的版本。

Solr中的所有內容都區分大小寫,刻面不是特例。

您可以通過一個單獨的字段進行過濾(帶有lowercasefilter的keywordtokenizer)和一個用於顯示(不帶小寫字母過濾器的字符串/ keywordtokenizer)來解決此問題。