Apache Solr で、JSON 応答のリストにラップされたフィールドを受信するという問題が発生していますが、それらは特異である必要があります。これは schema.xml からの抜粋です。問題を引き起こす 2 つのフィールドの例はdjango_ct
、 とdjango_id
です。
<fields>
<!-- general -->
<field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
<field name="django_ct" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="django_id" type="string" indexed="true" stored="true" multiValued="false"/>
データが Solr にポストされる方法の例を次に示します。
<doc>
<field name="id">search.productcategory.3</field>
<field name="gender">M</field>
<field name="name">OBQYHSOQLWOUEHRMPSDI</field>
<field name="text">M\nOBQYHSOQLWOUEHRMPSDI</field>
<field name="django_id">3</field>
<field name="django_ct">search.productcategory</field>
</doc>
そして、これはsolrに保存されたファイルの例です:
"response": {
"numFound": 1,
"start": 0,
"docs": [
{
"django_ct": [
"search.productcategory"
],
"name": [
"Example"
],
"text": [
"Male\nExample"
],
"id": "search.productcategory.2",
"gender": [
"Male"
],
"django_id": [
2
],
"_version_": 1502081283634757600
}
]
}
これらのフィールドがリストでラップされる原因は何ですか? スキーマでは、multiValued
これらのフィールドの属性は false に設定されています。コアの作成と schema.xml の置き換えを除けば、他のすべてはすぐに使用できます。Haystack (Django プラグイン) を使用して Solr にアクセスしています。コードはこれらのフィールドに対して単一の値を受け取ることを期待していますが、これによって完全に壊れています。問題をさかのぼると、Solr の構成方法が原因のようです。
編集: これは solr.log の完全な内容です。これはすべて、サーバーの起動後にログに記録され、いくつかのサンプル クエリを実行しても出力がありませんでした:
INFO - 2015-05-27 08:38:12.563; [ ] org.eclipse.jetty.server.Server; jetty-8.1.10.v20130312
INFO - 2015-05-27 08:38:12.586; [ ] org.eclipse.jetty.deploy.providers.ScanningAppProvider; Deployment monitor /Users/sampeka/solr-5.1.0/server/contexts at interval 0
INFO - 2015-05-27 08:38:12.593; [ ] org.eclipse.jetty.deploy.DeploymentManager; Deployable added: /Users/sampeka/solr-5.1.0/server/contexts/solr-jetty-context.xml
INFO - 2015-05-27 08:38:13.629; [ ] org.eclipse.jetty.webapp.StandardDescriptorProcessor; NO JSP Support for /solr, did not find org.apache.jasper.servlet.JspServlet
INFO - 2015-05-27 08:38:13.682; [ ] org.apache.solr.servlet.SolrDispatchFilter; SolrDispatchFilter.init()WebAppClassLoader=1121453612@42d8062c