簡體   English   中英

SOLR中的完全匹配

[英]Exact match in SOLR

我正在使用NGramFilterFactory。 我的架構如下

<fieldType name="c_text" class="solr.TextField">
<analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.NGramFilterFactory" minGramSize="1" maxGramSize="255"/>
</analyzer>

<analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="parentId" type="string" indexed="true" stored="true"/>
<field name="data_s" type="c_text" indexed="true" stored="true"/>
<field name="email" type="c_text" indexed="true" stored="true"/>
<field name="receivedDate" type="tdate" indexed="true" stored="true"/>

我想在data_s字段上進行exatc短語搜索,例如“ Hello World”,但無法成功。 如果我給
data_s:hello world
它返回所有具有hello或world或兩者兼有的記錄。 如果我給
data_s:“你好世界”
它什么也不返回。

我如何才能對此進行精確的短語搜索。 我還需要搜索部分文本,例如“ ello”,這就是為什么我使用NGramFilterFactory的原因。

所以我的要求是也要搜索准確的詞組和部分文本。

我的解決方案:-

我為此使用復制字段。

<field name="content" type="text_general" indexed="true" stored="false" 
 multiValued="true"/>
<copyField source="data_s" dest="content"/>

每當我需要進行精確搜索時,我都會在“內容”字段中進行搜索。

我正在使用solr3.5,並且在此solr版本中定義了“ text_general”

    <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
</fieldType>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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