solr - 在DataConfig中获取xyz没有对应物

时间:2015-06-17 15:06:40

标签: solr

我正在使用Solr 5.2。 我做了以下事情:

  1. solr create -c demo
  2. 复制并将 schema.xml 放在demo/conf文件夹中。 我添加了一个名为load_date的字段,如下所示:
  3. <field name="load_date" type="string" indexed="true" stored="true" omitNorms="true"/>
    
    1. 数据配置看起来像这样
    2. <document name="xyz">
        <entity name="input" query="select * from test" logLevel="debug" datasource="mbdev">
          <field column="LOAD_DATE" name="load_date" />
        </entity>
      </document>
      

      只有id字段被填充,并且抱怨DataConfig中的字段load_date在Solr Schema中没有对应字段。我检查了我对示例-DIH的更改,看不出任何区别。

      我还注意到模式浏览器仅列出以下字段:

      • text
      • version
      • id
      • title

      我不知道它指的是哪个 schema.xml 。我怎么能找到这个?

2 个答案:

答案 0 :(得分:0)

发现 solrconfig 正在使用“ managed-schema.xml ”。

以下是解释托管架构的the wiki documentation。在使用字段名称更新托管架构后,我得到了它。

如果要使用 Schema.xml ('ClassicIndexSchemaFactory')而不是 managed-schema.xml ,则需要将以下字段类型添加到架构中。 XML

<fieldType name="booleans" class="solr.BoolField" sortMissingLast="true" multiValued="true"/>
<fieldType name="tdates" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0" multiValued="true"/>
<fieldType name="tlongs" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0" multiValued="true"/>
<fieldType name="tdoubles" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0" multiValued="true"/>

答案 1 :(得分:0)

您只需要遵循类型格式,即为字符串等添加_s

请参阅下面的名称和说明字段,使用您不需要触摸模式文件,它将使用此约定映射字段类型。

  <document name="Reports">
<entity name="Report" dataSource="ds1" pk="id"
  query = "select * from dbo.Roles">
    <field column="RoleID" name="id"/>
<field column="RoleName" name="name_s"/>
<field column="Description" name="description_t"/>
</entity>