2010-03-01 26 views
26

Chỉ cần cố gắng để xóa tất cả các tài liệu, và đã làm điều này:Solr delete không làm việc vì một lý do

http://localhost:8983/solr/update?stream.body=%3Cdelete%3E%3Cquery%3E*:*%3C/query%3E%3C/delete%3E 

sau đó cam kết:

http://localhost:8983/solr/update?stream.body=%3Ccommit/%3E 

tôi nhận được câu trả lời:

<lst name="responseHeader"> 
<int name="status">0</int> 
<int name="QTime">17</int> 
</lst> 
</response> 

Nhưng khi tôi tìm kiếm Tôi vẫn nhận được kết quả.

Tôi đã làm gì sai?

+0

không có lỗi trong nhật ký Solr? –

+0

nhật ký solr ở đâu, tôi không thể tìm thấy nó! Tôi đang chạy trên cầu tàu. – Blankman

+0

Đừng bận tâm, nếu bạn có câu trả lời, không có lỗi.Nền tảng khách hàng của bạn là gì? Nếu đó là Java, bạn chỉ có thể sử dụng SolrJ, hoặc là có bất kỳ lý do cụ thể mà bạn không sử dụng nó? –

Trả lời

30

Không chắc chắn nếu nó quan trọng nhưng bạn có thể mã hóa: quá

http://localhost:8983/solr/update?stream.body=%3Cdelete%3E%3Cquery%3E*%3A*%3C%2Fquery%3E%3C%2Fdelete%3E 

Một điều để thử là sử dụng phương thức POST (cách ưa thích để gọi cập nhật):

curl http://localhost:8983/solr/update?commit=true -H "Content-Type: text/xml" --data-binary '<delete><query>*:*</query></delete>' 
+2

Sau đó tôi chạy lệnh 'mã' riêng biệt (http: // localhost: 8983/solr/update? stream.body = ) sau khi chạy cái này. Rất cám ơn –

0

Trong Lucene wiki:

nó vẫn sẽ được tìm thấy, vì chỉ mục thay đổi không hiển thị cho đến khi và người tìm kiếm mới được mở. Để gây ra điều này xảy ra, gửi một lệnh cam kết Solr (post.jar thực hiện điều này cho bạn bằng cách mặc định)

lẽ bạn có thể gửi một tin nhắn <commit/> để Solr.

6

Đặt cam kết = tham số thực sự trong bạn GET yêu cầu:

http://localhost:8983/solr/update?stream.body=%3Cdelete%3E%3Cquery%3E*:*%3C/query%3E%3C/delete%3E&commit=true

2

Hãy nhớ để xóa bộ nhớ cache của trình duyệt! Tôi nghĩ rằng tôi đã có cùng một vấn đề, nhưng nó bật ra rằng trình duyệt đã chỉ lưu trữ kết quả và đã trở về trang lưu trữ. D'oh!

0
http://localhost:8983/solr/update?stream.body=<delete><query>*:*</query></delete>&commit=true 
-2

Có thể bạn đang bỏ lỡ dấu gạch chéo (/) sau khi cập nhật và trước dấu chấm hỏi.

truy vấn hiện tại:

http://localhost:8983/solr/update?stream.body=<delete><query>*:*</query></delete>&commit=true 

Revised truy vấn:

http://localhost:8983/solr/update/?stream.body=<delete><query>*:*</query></delete>&commit=true 
7

tôi bị cắn với một này gần đây là tốt. Chỉ cần nhớ rằng nếu bạn có updateLog được cấu hình trong solrconfig.xml, nhưng không có phiên bản trường trong schema.xml

thấy https://issues.apache.org/jira/browse/SOLR-3432

tôi dành một giờ tốt về cái này !!!

+0

Nhận xét tuyệt vời. Đây chính là vấn đề của tôi. – Layke

+0

+1 Cảm ơn bạn rất nhiều! Điều này sẽ lãng phí cả ngày của tôi! –

+0

+1 Bạn đã lưu ngày của tôi! – heinob

Các vấn đề liên quan