第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Solr 短語搜索需要匹配部分單詞

Solr 短語搜索需要匹配部分單詞

PHP
桃花長相依 2021-06-29 13:57:00
使用 Solr 搜索英語和韓語文檔,到目前為止韓語搜索工作正常。也需要擴展英語精確短語以匹配部分單詞。我使用的 Solr 查詢:content: "He go"與他去,他走了,他目標(biāo)等不匹配。我試過這樣但沒有奏效content: "He go"*content: "He go*"當(dāng)前字段架構(gòu)<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"/>        <filter class="solr.LowerCaseFilterFactory"/>    </analyzer>    <analyzer type="query">        <tokenizer class="solr.StandardTokenizerFactory"/>        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>        <filter class="solr.LowerCaseFilterFactory"/>        <filter class="solr.CJKBigramFilterFactory" han="false" hiragana="false" katakana="false" hangul="true" outputUnigrams="true" />    </analyzer></fieldType>所以我的輸入和預(yù)期輸出如下:輸入:他去(帶引號)輸出:他去,他去,他目標(biāo)(應(yīng)該與包含這些詞的文檔匹配,可以是部分匹配)我怎樣才能實現(xiàn)這個功能,任何建議都非常感謝。
查看完整描述

2 回答

?
溫溫醬

TA貢獻1752條經(jīng)驗 獲得超4個贊

如果你想按詞的部分搜索,你需要申請,例如,N-Gram Tokenizer, <tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="10"/>


例如。


在: "bicycle"


出去: "bicy", "bicyc", "icyc", "icycl", "cycl", "cycle", "ycle"


在這種情況下,您將能夠按單詞部分進行搜索。您需要為兩個分析器應(yīng)用 NGramTokenizerFactory:


<fieldType name="custome_field_type" class="solr.TextField" positionIncrementGap="100" multiValued="false">

    <analyzer type="index">

      <tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="10"/>

      <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>

      <filter class="solr.LowerCaseFilterFactory"/>

    </analyzer>

    <analyzer type="query">

      <tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="10"/>

      <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>

      <filter class="solr.LowerCaseFilterFactory"/>

    </analyzer>

  </fieldType>

如果您使用上述字段類型,那么在管理工具上的相同分析如下。

http://img1.sycdn.imooc.com//60ded05000019d1518620754.jpg

您還可以嘗試以下查詢分析器。這一切都取決于您的要求。


<analyzer type="query">

  <tokenizer class="solr.KeywordTokenizerFactory"/>

</analyzer>

您可以修改或添加字段類型schema.xml并將其應(yīng)用于您的字段。完成后重新啟動服務(wù)器,重新索引數(shù)據(jù)。如果數(shù)據(jù)匹配,您可以使用 solr 管理工具驗證您的字段的上述 fieldType。


我使用了以下字段類型并使用 solr 工具進行了分析。


這是字段類型:


    <fieldType name="custome_field_type" class="solr.TextField" positionIncrementGap="100" multiValued="false">

        <analyzer type="index">

          <tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="10"/>

          <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>

          <filter class="solr.LowerCaseFilterFactory"/>

        </analyzer>

        <analyzer type="query">

          <tokenizer class="solr.KeywordTokenizerFactory"/>

          <filter class="solr.LowerCaseFilterFactory"/>

        </analyzer>

   </fieldType>

請從 solr 管理工具中找到相同的分析。

http://img1.sycdn.imooc.com//60ded0640001abcb14590730.jpg

查看完整回答
反對 回復(fù) 2021-07-02
?
繁星點點滴滴

TA貢獻1803條經(jīng)驗 獲得超3個贊

復(fù)雜的短語查詢分析器支持詞組內(nèi)嵌通配符。在您的情況下,附加inOrder=true到參數(shù)將為您提供所需的行為。

您應(yīng)該注意一些限制:

性能對與模式關(guān)聯(lián)的唯一術(shù)語的數(shù)量很敏感。例如,搜索“a*”將為索引中以單個字母“a”開頭的指示字段的所有術(shù)語形成一個大的 OR 子句(技術(shù)上是一個包含許多術(shù)語的 SpanOr)。將通配符限制為至少兩個或最好三個字母作為前綴可能是謹(jǐn)慎的。允許非常短的前綴可能會導(dǎo)致返回許多低質(zhì)量的文檔。

請注意,它還支持前導(dǎo)通配符“*a”以及隨之而來的性能影響。在索引時間分析中應(yīng)用 ReversedWildcardFilterFactory 通常是一個好主意。


查看完整回答
反對 回復(fù) 2021-07-02
  • 2 回答
  • 0 關(guān)注
  • 338 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號