2

タイトルが悪かったので申し訳ありませんが、問題の説明方法がわかりませんでした。私は日焼け(Pythonインターフェース)を使用して、djangoアプリ内でsolrを照会しています。私が検索しているとき、すべてが大丈夫です、私は完全な文字列を取得します。一方、ファセットを使用している場合(たとえば、「job_title」フィールドで)、語幹の単語のみを取得します。

このような:

<lst name="job_title">
    <int name="manag">17095</int>
    <int name="sale">7689</int>
    <int name="engin">6995</int>
    <int name="consult">4907</int>
    <int name="account">4710</int>
    <int name="develop">4509</int>
    <int name="senior">4366</int>

など...これは私のテキストfieldType定義です:

<fieldType name="text" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
  <analyzer>
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords.txt"
            enablePositionIncrements="true"
            />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
    <filter class="solr.PorterStemFilterFactory"/>
  </analyzer>
</fieldType>

PorterStemFilterは物事を台無しにするものだと思いますが、提案をアクティブにするためにそれが必要です。何か助けはありますか?

4

1 に答える 1

2

これが、通常、分析されていないフィールドにファセットする理由です。StrFieldタイプの別のフィールドを追加し、copyFieldディレクティブを使用してそこにデータを取得し、この新しい文字列フィールドをファセットします。

于 2011-07-21T13:47:20.720 に答える