[英]Searching in Solr
我正在建立一個使用solr搜索引擎的電子商務項目。我想根據特定的關鍵字進行搜索。 如果輸入“ c1234”,它將顯示所有帶有關鍵字“ c1234”的文檔。 它的工作正常。 但是,如果我輸入“ c12#34”,那么它也應該只考慮“ c1234”。 所以問題是我想在這里忽略哈希標簽。 Solr不應該考慮我的哈希標簽,並且在兩種情況下都應顯示相同的結果。
另一個問題是我想修剪空格。 如果我搜索“ HP 940”,它將修剪空白並顯示與“ HP940”相似的結果。 所以我想在有或沒有空格的情況下顯示相似的結果。 例如,如果我輸入“ Hp 940”,solr應該將其視為“ HP940”。 所以問題是修剪空白
提前致謝
嘗試使用olr.WordDelimiterFilterFactory
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1" catenateWords="1"
generateNumberParts="1" catenateNumbers="0" splitOnNumerics="1"
catenateAll="0" splitOnCaseChange="1"
stemEnglishPossessive="1" preserveOriginal="1" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
要替換#,您應該使用https://cwiki.apache.org/confluence/display/solr/CharFilterFactories
對於主題標簽和其他字符,您應該使用catenateWords參數或solr.PatternReplaceCharFilterFactory來查看solr.WordDelimiterFilterFactory。
對於像HP 940這樣的詞,還應考慮在dismax處理程序上沒有詞條之類的詞組字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.