2016-10-05 75 views
0

一個在SOLR字段,讓調用它Customers_txt具有這樣的價值:SOLR查詢「小於」和「greather比」符號

qwe<asd>zxc 

我想查詢它是這樣的:

Customers_txt:(*qwe<asd>zxc*) 

但是查詢執行時沒有結果。 如果我查詢它像這樣

Customers_txt:(*qwe*) 

我得到的結果

"Customers_txt": [ "qwe<asd>zcx"] 

但有可能,我會發現很多的東西包含qwe作爲字符串的一部分不必要的記錄。 如果我執行一個沒有這樣的查詢*像這樣Customers_txt:(qwe<asd>zxc) 我得到結果回來。但我需要找到這個,即使這是一個子字符串,可以說AAAqwe<asd>zxcAAA,所以我需要這些星號標記。 但我也需要找到這些特殊符號的字符串(<>)。 這也applyes到符號[]:

回答

0

你應該試試下面提及的事情:

  • 你需要考慮的schema.xml文件是什麼好心斷詞的/過濾器工廠您正在使用的字段類型

  • 也嘗試在Solr管理面板上使用debugQuery = true執行此查詢並查看正在解析哪個查詢?

+0

這裏使用什麼字段類型 '<字段類型名稱= 「text_general」 類= 「solr.TextField」 positionIncrementGap = 「100」> < debugQuery 的' 「調試」 tokenizer類= 「solr.KeywordTokenizerFactory」/> <過濾器類= 「solr.LowerCaseFilterFactory」/> ' –

+0

和結果:{ 「rawquerystring」:「Customers_txt:(* IOP opi * )」, 「查詢字符串」: 「Customers_txt:(* IOP OPI *)」, 「parsedquery」: 「Customers_txt:* IOP OPI *」, 「parsedquery_toString」: 「Customers_txt:* IOP OPI *」, 「explain」:{}, 「QParser」:「LuceneQParser」,「 –

+0

我沒有時間深入研究它。如果你面對的問題像角括號這樣的特殊字符;你有沒有嘗試用「?」替換這些。您的查詢將如下所示:* iop?oip?opi * –