Đối với truy vấn bộ lọc trong Solr, tôi cần bao gồm tất cả tài liệu không thuộc loại nhất định, cộng với mọi tài liệu thuộc loại có giá trị trong một trường nhất định.Truy vấn bộ lọc Solr bao gồm NOT và OR
Tôi cố gắng này:
fq=(-type_id:(A) OR content:(['' TO *]))
Nhưng nó không bao gồm các tài liệu của type_id
B, C, vv mà có null content
. (type_id
là một lĩnh vực string
và content
là text
.)
Tôi đã thấy câu hỏi này: Complex SOLR query including NOT and OR và sau này về nhà khai thác: http://robotlibrarian.billdueber.com/solr-and-boolean-operators/. Tôi nghĩ cú pháp tôi cần phải chính xác. Có ai có thể thấy lỗi của tôi không?
Cập nhật: Tôi đang sử dụng LuceneQParser. Nó phân tích các truy vấn lọc trên như
-type_id:A content:['' TO *]
Nó phân tích các truy vấn lọc gợi ý trong các ý kiến (-type_id:A OR (content:[* TO *] AND type_id:A)
) như
-type_id:A (+content:[* TO *] +type_id:A)
nên không có kết quả.
những gì bạn muốn đạt được ?? type_id không A HOẶC tất cả các tài liệu không có nội dung hoặc một số nội dung? – Jayendra
@Jayendra Xem câu đầu tiên của câu hỏi của tôi: không có giới hạn đối với các tài liệu không phải là type_id = A; nếu chúng là type_id = A, chúng phải có nội dung không null. Tôi cũng đã thử, ví dụ, 'fq = ((type_id: (A) AND nội dung: (['' TO *])) HOẶC type_id: (*))', nhưng vẫn không có may mắn. – Kimberly
Bạn có thể thử fq = -type_id: A OR (nội dung: [* TO *] AND type_id: A) – Jayendra