Tôi đang cố gắng thêm một mức tăng cho truy vấn api Solr tìm kiếm khi một trường có một giá trị cụ thể, ví dụ: khi nid = 123. Nhìn vào Tài liệu Solr phiên bản 8.7 để tăng cường (phiên bản máy chủ solr của tôi), điều này có vẻ khá đơn giản. Tôi chỉ cần thêm một tham số bq như:
bq=nid:123^10
Khi tôi truy cập giao diện người dùng quản trị máy chủ Solr của mình và thêm truy vấn vào đó - trước tiên hãy kiểm tra hộp kiểm trình phân tích cú pháp edismax, sau đó thêm không:123^10
vào trường bq - Tôi thấy các kết quả trong đó nút của tôi có nid nằm ở đầu danh sách (như tôi mong đợi) với tất cả các kết quả khác sau nó. Nếu tôi xóa tùy chọn này, nút của tôi với nid 123 không còn ở trên cùng (cũng như tôi mong đợi).
Các search_api_solr mô-đun cung cấp một cái móc để thay đổi truy vấn, hook_search_api_solr_query_alter(), nơi tôi có thể thêm tăng cường của mình. (Lưu ý bên lề, trước đây tôi đã sử dụng hook này để tăng kết quả dựa trên ngày về cơ bản như được ghi lại trong tài liệu này bình luận bkosborne.)
Sự hiểu biết của tôi là tôi sẽ có thể thực hiện một cái gì đó như:
function MY_MODULE_search_api_solr_query_alter(\Solarium\Core\Query\QueryInterface $solarium_query, \Drupal\search_api\Query\QueryInterface $query) {
$solarium_query->addParam('bq', 'nid:123^10');
}
Tuy nhiên, điều này không ảnh hưởng đến điểm số liên quan trong kết quả của tôi (tôi đang in điểm số liên quan trong chế độ xem của mình và nút của tôi với nid 123 có cùng số điểm cho dù tôi có thêm tham số này hay không), cũng như thứ tự có thể dự đoán được. kết quả.
Tôi đang thiếu gì ở đây?
Thông tin phiên bản:
- Lõi Drupal: 9.1.10
- API tìm kiếm: 8.x-1.19
- API tìm kiếm Solr: 4.1.12
- Máy chủ Solr: 8.7.0
tái bút khóa trường nid của tôi thực sự là it_nid
trong chỉ mục, nhưng tôi chỉ sử dụng không có
trong câu hỏi này để dễ đọc.