2013-06-09 33 views
15

Tôi muốn thực hiện relevance feedback trong Solr. Solr đã có một tính năng More Like This: Cho một tài liệu duy nhất, trả lại một tập hợp các tài liệu tương tự được xếp hạng tương tự với tài liệu đầu vào đơn lẻ. Có thể cấu hình tính năng More Like This của Solr để hoạt động như More Like Những số không? Nói cách khác: Đưa ra một tập hợp các tài liệu, trả về một danh sách các tài liệu tương tự như bộ đầu vào (được xếp theo độ tương tự).Phản hồi liên quan trong Apache Solr

Theo câu trả lời cho this question quay Solr của More Like This thành giống như những người có thể được thực hiện theo cách sau:

  1. Hãy url của tập kết quả của truy vấn trả lại giấy tờ quy định. Ví dụ: url http://solrServer:8983/solr/select?q=id:1%20id:2%20id:3 trả về phản hồi cho truy vấn id:1 id:2 id:3 thực tế là ghép nối các tài liệu 1, 2, 3.
  2. Đặt url trên (nối các tài liệu được chỉ định) trong tham số GET url.stream của Thêm xử lý: http://solrServer:8983/solr/mlt?mlt.fl=text&mlt.mintf=0&stream.url=http://solrServer:8983/solr/select%3Fq=id:1%20id:2%20id:3. Bây giờ, trình xử lý giống như thế này xử lý việc ghép nối các tài liệu 1, 2 và 3 thành một tài liệu đầu vào đơn và trả về một tập hợp các tài liệu được xếp hạng tương tự như kết nối.

Đây là một triển khai khá kém: Xử lý tập hợp tài liệu đầu vào như một tài liệu lớn phân biệt đối xử với tài liệu ngắn vì tài liệu ngắn chiếm một phần nhỏ trong toàn bộ tài liệu lớn.

Tính năng này được thực hiện theo biến thể The Rocchio Algorithm: Mất 20 thuật ngữ đầu tiên của tài liệu đầu vào (đơn lẻ có giá trị TFF cao nhất) và sử dụng các cụm từ đó làm truy vấn được sửa đổi, được tăng cường theo TF-IDF của họ. Tôi đang tìm cách cấu hình tính năng More Like This của Solr để lấy nhiều tài liệu như đầu vào của nó, trích xuất các thuật ngữ n đầu từ mỗi tài liệu đầu vào và truy vấn chỉ mục với các thuật ngữ được tăng theo TF-IDF của chúng.

Có thể định cấu hình More Like This hoạt động theo cách đó không? Nếu không, cách tốt nhất để thực hiện phản hồi liên quan trong Solr là gì?

Trả lời

2

Rất tiếc, không thể định cấu hình trình xử lý MLT theo cách đó.

Một cách để thực hiện việc này là triển khai SearchComponent tùy chỉnh và đăng ký nó với (dành riêng) SearchHadler.

Tôi đã thực hiện điều gì đó tương tự và nó khá dễ dàng nếu bạn nhìn một thành phần của một thành phần MLT original implementation.

Phần khó nhất là đồng bộ hóa kết quả từ các máy chủ phân đoạn khác nhau, nhưng nó có thể bị bỏ qua nếu bạn không sử dụng phân đoạn.

Tôi cũng khuyên bạn nên sử dụng các thông số riêng của mình trong quá trình triển khai để tránh va chạm với các thành phần khác.

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