2017-01-02 47 views
0

我現在面臨使用Solr的4.9使用Drupal-7和搜索API的一個問題。當我用感嘆號(!)的組合搜索時,solr返回空結果。Solr的返回空結果時,搜索「OMG!*」

E.g:

http://localhost:8983/solr/collection1/select?q=OMG!*&wt=json 

上面的查詢返回空結果。然而,在文件沒有與此字數據:

1. "tm_title": [ 
      "OMG! Ranveer Singh admits to having a 'Casting Couch' experience " 
     ] 
2. "tm_title": [ 
      "OMG! Rajinikanth was supposed to dub for 'Dangal'" 
     ] 

結果應該爲我尋找這個詞開始返回此兩文件「媽呀!」然後是任何東西(*)。

編輯: 以下是druapl搜索API標題字段配置。 enter image description here

+0

請分享用於字段tm_title的字段類型?搜索取決於字段是如何被索引的? –

+0

是的,它的文本類型。 – vijay

+0

這將是很好,如果你可以分享的字段類型..fieldType在那裏將所定義的分析和過濾器的定義....你會發現在schema.xml中 –

回答

2

當你使用通配符時,分析儀序列大多跳過。由於內容可能被索引爲「omg」(您可以通過使用管理界面的分析頁面來確認此內容),試圖匹配以「OMG!」開頭的令牌。將無法工作(它可能會搜索「omg!」,因爲lowercasefilter是multiterm意識到的)。

如果您放棄'!'從你的通配符中,你可能會受到打擊 - 或者你放棄了通配符。

+0

是的......我也試着用「!」搜索和通配符...它不起作用...例如,如果我搜索'布拉瓦!'...我得到結果...並且如果我用'布拉瓦!*'搜索它不會讓我結果...好趕MatsLindh ... –

+0

嗨@MatsLindh,當我只用「OMG!」搜索時這是回報我的結果。 – vijay

+0

是的,因爲然後完整的分析鏈運行,剝離'!'並執行與內容索引時相同的處理。當您使用通配符時,跳過該分析鏈的多個步驟(除了過濾器是multitermaware) - 因此令牌不匹配。 – MatsLindh