0

copyField が機能しない理由がわかりません。ここに私のスキーマがあります:

<field name="name" type="text_name" indexed="true" stored="true" multiValued="true"/>       

<copyfield source="name" dest="nameSuggest"/>
<field name="nameSuggest" type="textNamePhrase" stored="true" multiValued="true" indexed="true"/>

<fieldType class="solr.TextField" name="textNamePhrase" positionIncrementGap="100">
   <analyzer>         
    <tokenizer class="solr.KeywordTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>  
   </analyzer>              
</fieldType>
<fieldType name="text_name" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <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.ApostropheFilterFactory"/>        
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />        
     <filter class="solr.ApostropheFilterFactory"/>  
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

nameSuggest フィールドで提案を行うための提案セットアップがあります。ドキュメントをアップロードして copyField タグを保持すると、提案が機能しません (結果が返されません)。ただし、 name と nameSuggest の両方のフィールドを含むデータを削除してアップロードすると (クライアントはこれらのフィールドを複製します)、提案は機能します。

私のcopyFieldのどこが悪いのか教えていただけますか? nameSuggest フィールドが入力されているかどうかを知る方法は? クエリから返されたことがわかりません。

ありがとう、

4

1 に答える 1

0
  1. 要素<field>は要素内にある必要があり<fields>ます。

  2. 要素 <copyfield>を閉じた後に<fields>要素を配置します。

何かのようなもの:

<fields>
  <field name="name" type="text_name" indexed="true" stored="true" multiValued="true"/>       
  <field name="nameSuggest" type="textNamePhrase" stored="true" multiValued="true" indexed="true"/>
</fields/>

<copyfield source="name" dest="nameSuggest"/>

インデックス付きフィールドが入力されているかどうかを知るには、Solr でスキーマ ブラウザーを使用できます。

http://localhost:8983/solr/#/[CORENAME]/schema-browser

または用語コンポーネントをクエリします

http://localhost:8983/solr/[CORENAME]/terms?terms.fl=name&terms.regex=.*&terms.regex.flag=case_insensitive&wt=json&omitHeader=true
于 2014-06-10T23:05:01.660 に答える