2012-01-17 42 views
5

Tôi đang làm việc với Solr và tôi muốn biết liệu có thể có mệnh đề LIKE trong truy vấn hay không. Ví dụ, tôi muốn biết tất cả các tổ chức với "New York" trong tiêu đề. Trong SQL, điều này sẽ được viết như Tên LIKE 'New York%'.Truy vấn Solr với LIKE Khoản

Câu hỏi của tôi - cách bạn viết truy vấn LIKE trong Solr?

Tôi đang sử dụng thư viện SolrNet, nếu điều đó tạo ra sự khác biệt.

+0

bạn có thể kiểm tra http://stackoverflow.com/questions/3088401/substring-matches-within-solr – naresh

Trả lời

6

Bạn chỉ cần tìm kiếm "New York", nhưng trước tiên bạn cần định cấu hình đúng trình phân tích trường của bạn. Ví dụ: bạn có thể muốn bắt đầu với loại trường như text_general như được xác định trong default Solr schema. Loại trường này sẽ mã hóa trên khoảng trắng và các dấu phân cách từ phổ biến khác, sau đó áp dụng bộ lọc các từ dừng, sau đó viết thường các thuật ngữ để làm cho các tìm kiếm không phân biệt chữ hoa chữ thường.

Thông tin thêm về analyzers in the Solr wiki.

+0

tôi có bản sao dán text_general từ bộ sưu tập mặc định1 schema.xml vào dự án của tôi nhưng tìm kiếm không hoạt động. tôi đang cố gắng tìm kiếm "nóng" trong chuỗi "là nó nóng trong dubai?" –

+0

nếu tôi phân tích nó trong Solr admin, nó hoạt động ở đó nhưng nếu tôi tìm kiếm trong Admin> Truy vấn nó không –

6

Nếu bạn đang sử dụng solr 3.1 hoặc mới hơn, hãy xem Extended DisMax Query Parser, hỗ trợ truy vấn ký tự đại diện. Bạn có thể bật tính năng này bằng cách sử dụng <str name="defType">edismax</str> trong cấu hình trình xử lý yêu cầu.

Sau đó, bạn có thể sử dụng truy vấn như title:New York* với cùng hành vi như truy vấn với mệnh đề tương tự. Sự khác biệt chính giữa câu trả lời của tôi và câu trả lời được chấp nhận là bạn thậm chí có thể tìm kiếm các đoạn từ bằng cách sử dụng các ký tự đại diện. Ví dụ: New Yorkers sẽ khớp trong trường hợp này. Rất tiếc, bạn có thể gặp sự cố với các truy vấn phân biệt chữ hoa chữ thường ngay cả khi bạn đang sử dụng LowerCaseFilterFactory. Có một cái nhìn here để biết thêm. Hầu hết các vấn đề đó sẽ được khắc phục bằng bản phát hành độc lập 3.6 vì vấn đề SOLR-2438 đã được giải quyết.

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