2012-01-16 30 views
6

Có thể xác định rằng các thuật ngữ cụ thể quan trọng hơn khi khác khi tạo chỉ mục (không phải khi truy vấn chỉ mục)?Tăng cường các Điều khoản Lucene Khi Xây dựng Chỉ mục

Hãy xem xét ví dụ một bộ lọc từ đồng nghĩa:
doc 1: "Đây là một chiếc xe đẹp"
doc 2: "Đây là một chiếc xe đẹp"

tôi muốn thêm vào chiếc xe hạn cho doc đầu tiên và thuật ngữ xe đến tài liệu thứ hai, nhưng tôi muốn rằng nếu sau đó chỉ mục được truy vấn bằng xe ô tô thì tài liệu đầu tiên sẽ được ghi điểm cao hơn tài liệu thứ hai và nếu được truy vấn cho xe thì đó sẽ là cách khác.

Sẽ gọi setBoost trên các trường trước khi thêm chúng vào tài liệu tương ứng của chúng có phải không?

Hoặc có lẽ tôi nên thêm từ đồng nghĩa vào tên trường khác?

Hoặc tôi đang xem xét điều này từ một quan điểm sai?

Cảm ơn

Trả lời

4

Cài đặt tăng trên đơn đăng ký ảnh hưởng đến tất cả các cụm từ trong trường đó để điều này không hoạt động trong trường hợp của bạn.

Nhưng nó phải là posible bằng cách sử dụng tải trọng Lucene (một mảng byte có thể được thiết lập cho mỗi thuật ngữ). Bạn sẽ sử dụng chúng để đặt các mức tăng cụ thể về thời hạn (ví dụ: xe thành 0,5 cho tài liệu 1). Sau đó, bạn sẽ triển khai phương pháp Similarity và ghi đè scorePayload() của riêng mình để giải mã và sau đó sử dụng PayloadTermQuery cho phép bạn đóng góp vào điểm dựa trên khởi động bạn có trong tải trọng cho cụm từ đó.

+0

Cảm ơn, tôi sẽ cố gắng tìm một ví dụ dựa trên các lớp và phương pháp bạn đã lưu ý ở đây. – epeleg

+0

Bạn cũng có thể hạn chế các tải trọng này chỉ tăng lên các thuật ngữ trong một trường cụ thể (ví dụ: "thẻ")? – RalfB

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