Tôi đang gặp sự cố với Apache Solr, nơi tôi nhận các trường được bao trong danh sách trong các câu trả lời JSON nhưng chúng phải là số ít. Dưới đây là một exerpt từ schema.xml, hai lĩnh vực ví dụ cho tôi một vấn đề là django_ct
và django_id
:Các trường trong phản ứng solache solr được đa giá trị khi chúng phải là số ít
<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"/>
Dưới đây là một ví dụ về cách dữ liệu được đưa lên 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>
Và đây là ví dụ về tệp được lưu trữ trong 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
}
]
}
Điều gì khiến các trường này được bao bọc trong danh sách? Trong lược đồ, thuộc tính multiValued
cho các trường này được đặt thành false. Ngoài việc tạo ra cốt lõi và thay thế schema.xml mọi thứ khác là thẳng ra khỏi hộp. Tôi đang truy cập Solr bằng cách sử dụng Haystack (một plugin Django), mã dự kiến sẽ nhận được các giá trị duy nhất cho các trường này nhưng hoàn toàn bị hỏng bởi điều này. Truy tìm lại vấn đề có vẻ là do Solr được cấu hình như thế nào.
Edit: Đây là những nội dung hoàn toàn của solr.log, tất cả điều này đã được ghi lại sau khi khởi chạy máy chủ, chạy một vài truy vấn mẫu đã không có đầu ra:
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()[email protected]
Bạn đang truy cập solr từ haystack bằng SearchQuerySet? Nếu có, bạn có thể dán các bộ lọc được sử dụng để truy cập solr. Ngoài ra tìm solr.log và xác định vị trí các mục nhập nhật ký khi bạn thực hiện tìm kiếm ở trên. Nó sẽ hiển thị các tham số chính xác được gửi tới Solr - điều này sẽ cung cấp đủ đầu mối để gỡ lỗi thêm. –
Phản hồi tôi đăng được lấy thẳng từ Solr bằng giao diện quản trị và phù hợp với vấn đề tôi đã truy cập thông qua haystack. SearchQuerySets bị hỏng vì điều này. –
Tôi cũng đã đăng nội dung của solr.log ở trên. –