0

他のすべてのフィールドにはインポートされたデータがありますが、すべての結果を検索すると company_logo フィールドが表示されません。つまりここに私のデータ構成ファイルがあります

    <?xml version="1.0" encoding="UTF-8" ?>
    <dataConfig>
     <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
                         url="jdbc:mysql://localhost:3306/demandfire" 
                            user="root" password=""/>
     <document>
        <entity name="core4" 
              query="select company.company_name,demand.id,demand.issue,
            demand.suggestion,demand.title,demand.company_id,company.logo from              company,demand 
            where demand.company_id = company.id;
        ">

            <field column="demand.id" name="id"/> 
            <field column="demand.issue" name="issue"/>
            <field column="demand.suggestion" name="suggestion"/>
            <field column="demand.title" name="title"/>
            <field column="demand.company_id" name="company_id"/>
            <field column="company.company_name" name="company_name"/>
            <field column="company.logo" name="company_logo"/>

         </entity>
     </document>
    </dataConfig>

以下は私のスキーマ ファイルです。問題はフィールド company_logo にあります。data-config ファイルで正しくマッピングしました。他のすべてのフィールドはデータを取得できますが、このフィールドは取得できません。この (ロゴ) フィールドのサンプル エントリmysql テーブルのこのタイプは '6bf38f4e-a9af-40b8-af04-2b90d3c93f1f.jpg' です

    <schema name="example core one" version="1.1">
      <types>
       <fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>

       <fieldType name="string_lowercase" class="solr.TextField" sortMissingLast="true" omitNorms="true">
        <analyzer type="query">
            <tokenizer class="solr.KeywordTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
    </fieldType>

      </types>

     <fields>   
      <!-- general -->

      <field name="id" type="string"    indexed="true"  stored="true"  multiValued="false" required="true"/>
      <field name="issue" type="string_lowercase"    indexed="true"  stored="true"  multiValued="false" required="true"/>
      <field name="suggestion" type="string_lowercase" indexed = "true" stored="true" multivalued="false" required = "true"/>
      <field name="title" type="string_lowercase" indexed = "true" stored="true" multivalued="false" required = "true"/>
      <field name="company_id" type="string" indexed = "true" stored="true" multivalued="false" required = "true"/>
      <field name="company_name" type="string_lowercase" indexed = "true" stored="true" multivalued="false" required = "true"/>
      <field name="company_logo" type="string" indexed = "true" stored="true" multivalued="false" required = "false"/>

     </fields>



     <!-- field to use to determine and enforce document uniqueness. -->
     <uniqueKey>id</uniqueKey>

     <!-- field for the QueryParser to use when an explicit fieldname is absent -->
     <defaultSearchField>title</defaultSearchField>

     <!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
     <solrQueryParser defaultOperator="OR"/>
    </schema>*
4

1 に答える 1

0

フィールドの required= "false" 属性を削除してみてください (とにかくデフォルトである必要があります)。

これでフィールドの定義を変更してみてください:

<field name="company_logo" type="string" indexed = "true" stored="true" multivalued="false"/>
于 2013-08-01T07:57:25.363 に答える