我試圖對我的Solr的系統中運行以下查詢:如何在solr中進行字符串搜索,該字符串搜索允許通配符,空格字符,並且不區分大小寫?
((((subtype:place) AND name:fis*) AND addressPostal:98007) AND addressLine1:14320\ 21*)
這個查詢是爲了搜索具有名稱fis
的前3個字符和地址的前8個字符是商家14320 21
。
這將返回無匹配。但是,如果我將fis*
更改爲Fis*
,它會返回正確的匹配項。經過進一步調查,看起來字符串類型是區分大小寫的。
我然後試圖定義我的領域,使他們將不區分大小寫,允許通配符搜索(或至少開始搜索),而不是打破空白。不幸的是我失敗了。
到目前爲止,我已經得到的最接近的是:
<fieldType name="lowerCaseString" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
有了這個,我可以做((((subtype:place) AND name:fis*) AND addressPostal:98007) AND addressLine1:14320*)
,並得到了正確的比賽,但我不能做地址搜索全部8個字符,由於空間(並且由於大多數地址在第一個空間之前只有幾位數字,所以這是一個主要問題)。
addressLine1搜索也需要不區分大小寫,因爲我需要st == ST == St
。
我該如何做到這一點?