1

この構成を使用して、英語の製品とそれに相当する中国語の製品の両方を含むデータを検索します。

        <fieldType name="text_synm" class="solr.TextField">
        <analyzer type="index">

        <tokenizer class="solr.CJKTokenizerFactory"/>

            <filter class="solr.SynonymFilterFactory" synonyms="synonym.txt" ignoreCase="true" expand="false"/>
              <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" splitOnNumerics="1" />
               <filter class="solr.LowerCaseFilterFactory"/>

        </analyzer>

        <analyzer type="query">

            <tokenizer class="solr.CJKTokenizerFactory"/>

              <filter class="solr.SynonymFilterFactory" synonyms="synonym.txt" ignoreCase="true" expand="false"/>
              <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" splitOnNumerics="1" />
               <filter class="solr.LowerCaseFilterFactory"/>

        </analyzer>
    </fieldType>

しかし、solr adminで中国語で検索すると、結果が得られません。

使ってみました

<tokenizer class="solr.WhitespaceTokenizerFactory"/>

それ以外の

<tokenizer class="solr.CJKTokenizerFactory"/>

しかし、結果はありません。synonym.txtがutf-8エンコードであることを確認します

ここに何か手がかりはありますか?

4

1 に答える 1

0

とにかくapach/conf/server.xmlを編集してこれを追加する必要があると思います

URIEncoding="UTF-8" useBodyEncodingForURI = "false"

たとえば、コネクタタグに

    <Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI = "false" />

でも

 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443">

これを追加する必要があります

URIEncoding="UTF-8"

私の場合、それがうまくいかなかったのは、私のsynonym.txtファイルが中国語と英語で混在していることが原因である可能性があります。誰かがより高度な答えを見つけてくれることを願っています。

于 2012-11-08T07:27:06.173 に答える