1
我正在使用SOLR和MySQL。SOLR - MYSQL - 查詢結果
這是我的數據-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' 文件到索引。 問題在於查詢索引;只有當我鍵入'*:*'
並且僅關於文檔ID(而不是occ_name
)時,SOLR纔給出結果!
<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 DOC = 1
occ_name:1
給我 '未定義場occ_name'
爲什麼呢?
謝謝關於盧克的建議。順便說一句使用「text_en」沒有工作,使用盧克我可以證實,沒有對指數 – 2012-04-24 10:38:54
沒有「occ_name」看看你的schema.xml並檢查您所定義什麼樣的場的類型(字段類型)。然後相應地聲明你的occ_name字段。所以做這個改變,重新啓動Solr並重新索引。 – 2012-04-24 11:25:49
我在問題中指出了我在schema.xml中定義的字段類型。我想我已經用錯誤的方式來定義它們了......但是我看不到錯誤(我建議我在occ_name字段中用'text_en'改變'text')。 – 2012-04-24 11:44:17