2017-03-01 112 views
0
開頭

我已將數據從我的數據庫導入Solr以查詢目的。Solr匹配字符串,以

數據的樣本如下...

NAMATJIRA,DRIVE,,WARAMANGA,ACT 
DOUGLAS WATERHOUSE,DRIVE,,DUNLOP,ACT 
WARDELL,DRIVE,,BARDEN RIDGE,NSW 

在Solr管理頁面,當我運行查詢

street_name:wa* AND street_name:drive* 

我得到如上的所有記錄。有沒有一種方法可以過濾,以便我只能得到以WA開頭的那些?

更新:添加的架構信息

<field name="street_name" type="text_general" indexed="true" stored="true"/> 
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> 
     <analyzer type="index"> 
     <tokenizer class="solr.KeywordTokenizerFactory"/>  
     <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
     <analyzer type="query"> 
     <tokenizer class="solr.KeywordTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
    </fieldType> 
+0

向我們展示您的solr模式 –

回答

1

你用它來分析該字段的類型被標記化而到這幾個方面,所以

NAMATJIRA,DRIVE,,WARAMANGA,ACT 

成爲(包含多個方面的字段,然後它可能也是lowercasing等)

NAMATJIRA 
DRIVE 
WARAMANGA 
ACT 

這就是爲什麼你的查詢匹配它,因爲其中一個值以'wa'開始。

要解決此問題,只需將您的字段的類型更改爲使用KeywordTokenizerFactory,即將所有內容保留爲一個單詞。

+0

已更改爲KeywordTokenizerFactory(架構信息已更新,請參閱原始問題),但結果並未改變。 – user2260040

+0

您是否重新索引?你需要 – Persimmonium

+0

reindexing做的伎倆。非常感謝。 – user2260040