Tôi đã thực hiện truy vấn phức tạp bằng cách sử dụng tính phổ biến để cải thiện kết quả của tài liệu truyền thông xã hội bằng cách sử dụng Elasticsearch. Truy vấn hoạt động thực sự tốt và kết quả hàng đầu luôn tập trung vào truy vấn và với các yếu tố thú vị.Kết quả đa dạng về tìm kiếm Elasticsearch
Tuy nhiên, có một vấn đề, đối với một số truy vấn, kết quả đầu tiên là tất cả từ cùng một người dùng.
Tôi muốn điểm dưới tài liệu nếu cùng một người dùng được truy lục trên tài liệu cao hơn. Bằng cách này, tôi hy vọng sẽ có sự đa dạng hơn về kết quả.
Lưu ý rằng tôi không muốn chúng bị xóa, vì trong một số trường hợp, vẫn có thể thú vị khi tìm thêm tài liệu của cùng một người dùng, nhưng tôi muốn chúng ở vị trí thấp hơn.
Ai có thể đề xuất một cách để làm cho nó hoạt động?
Như đã đề cập trong một số ý kiến tôi cập nhật một (phiên bản đơn giản) truy vấn của tôi:
query = {"function_score": {
"functions": [
{"gauss": {"createdAt":
{"origin": "now", "scale": "30d", "offset": "7d", "decay" :0.9 }
}},
{"gauss": {"shares.last.twitter_retweets_log":
{"origin": 4.52, "scale": 2.61, "decay" : 0.9}
}},
],
"query": {"bool":{"must":[
{"exists":{"field": "images"}},
{"multi_match":{"query": "foo boo", fields:["text", "link.title"]}}
]}},
"score_mode": "multiply"
}};
PS: một số tài liệu mà bạn có thể thú vị, như họ nói về sự đa dạng, nhưng tôi không chắc chắn làm thế nào để áp dụng:
- https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-sampler-aggregation.html?q=sampler
- https://lucene.apache.org/core/5_1_0/misc/org/apache/lucene/search/DiversifiedTopDocsCollector.html
Bạn có thể hiển thị truy vấn thực tế của mình và một số kết quả bạn hiện đang nhận được không? Ngoài ra, loại trường mô tả người dùng của bạn (ví dụ: chuỗi hoặc số) là gì? – Val
@Val Tôi đang sử dụng Truy vấn Điểm chức năng trên elasticSearch 2.1. User.id là một chuỗi. –
Bạn có phiền khi chia sẻ truy vấn thực tế của mình không? – Val