簡體   English   中英

在Solr中搜索

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM