Cách kinh điển là thế này:
fieldName:[* TO *]
Sử dụng một ''
ở phía bên trái như Paige Nấu gợi ý có thể sẽ làm việc quá nhưng tôi không tin tưởng nó nhiều như tôi làm ở trên. Và vì đây là trường Vị trí, có thể bạn sẽ phải thực hiện việc này đối với một trong hai trường thực tế bên dưới so với trường tổng hợp lôgic này. Chúng bắt đầu bằng fieldName
và kết thúc bằng một số hậu tố dạng số; tìm trong Trình duyệt lược đồ để xem tên thực tế là gì.
Một điều quan trọng cần lưu ý ở đây là một truy vấn như thế này là tốn kém cho Solr để làm khi thực hiện quét toàn bộ chỉ mục trên trường này. Nếu bạn có nhiều giá trị trường vị trí riêng biệt (hàng nghìn lần lên?) Thì đây là một vấn đề lớn. Nếu bạn làm điều này trong một truy vấn lọc, sau đó nó sẽ được lưu trữ và nó có lẽ là tranh luận. Nếu bạn muốn truy vấn này chạy nhanh, thì tại thời điểm chỉ mục bạn nên lập chỉ mục một trường boolean để biểu thị nếu có giá trị trong trường này hay không.
Nguồn
2012-05-23 18:14:26
Cảm ơn David, cú pháp [* TO *], kết hợp với việc kiểm tra cả hai trường sao lưu, có vẻ hoạt động chính xác (ví dụ: 'field_0_coord: [* TO *] AND field_1_coord: [* TO *]'). Cảm ơn cho các mẹo hiệu suất là tốt! – STW
Bạn không phải làm điều này với cả hai trường phối hợp, chậm gấp hai lần, chỉ một lần. Nếu một người có giá trị thì cái còn lại và ngược lại. –