1

我正在使用 SOLR 和 MySQL。

这是我的 data-config.xml

<dataConfig>
  <dataSource type="JdbcDataSource" 
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost/meishidb" 
              user="root" 
              password="root"/>
  <document>
    <entity name="id"
            query="SELECT 
                       p.id, 
                       p.occ_name
                   FROM 
                       BCARDS_OCCUPATION AS p">
            <field column="id" name='id'/>
            <field column="occ_name" name='occ_name'/>
    </entity>
  </document>
</dataConfig>

这些是添加到 schema.xml 的行

<field name="id" type="int" indexed="true" stored="true" required="true"/>
<field name="occ_name" type="text" indexed="true" stored="true" required="true"/>

查询运行良好,SOLR 将“n”个文档添加到索引中。问题在于查询索引;'*:*'SOLR 仅在我键入且仅关于文档 ID(而不是)时才给我结果occ_name

<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">1</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">*:*</str>
<str name="version">2.2</str>
<str name="rows">10</str>
</lst>
</lst>
<result name="response" numFound="5" start="0">
<doc>
<str name="id">1</str>
</doc>
<doc>
<str name="id">2</str>
</doc>
<doc>
<str name="id">3</str>
</doc>
<doc>
<str name="id">4</str>
</doc>
<doc>
<str name="id">5</str>
</doc>
</result>
</response>

如果我搜索:

id:1给我 id=1 的文档

occ_name:1给我“未定义的字段 occ_name”

为什么?

4

1 回答 1

0

我不知道您是否fieldType text在架构中创建,但默认架构中没有这样的 fieldType。

尝试type="text_en"在您的occ_name字段定义中使用。

顺便说一句(我总是建议同样的事情),要检查索引中的真正内容,请使用有史以来最伟大的 Lucene 工具,称为Luke

于 2012-04-24T07:17:25.333 回答