2014-05-09 18 views
6

Sự hiểu biết của tôi về Điểm liên tục Truy vấn trong elasticsearch là yếu tố tăng sẽ được chỉ định làm điểm cho mỗi truy vấn phù hợp. Số điện thoại documentation cho biết:Điểm số liên tục Truy vấn elasticsearch truy vấn

Truy vấn bao gồm bộ lọc hoặc truy vấn khác và chỉ trả về điểm cố định bằng tăng truy vấn cho mọi tài liệu trong bộ lọc.

Tuy nhiên khi tôi gửi truy vấn này:

"query": { 
    "constant_score": { 
     "filter": { 
      "term": { 
       "source": "BBC" 
      } 
     }, 
     "boost": 3 
    } 
}, 
"fields": ["title", "source"] 

tất cả các tài liệu phù hợp được chấm điểm trong tổng số 1 ?! Tôi không thể tìm ra những gì tôi đang làm sai, và cũng đã thử với truy vấn thay vì bộ lọc trong constant_score.

+1

chạy cùng một truy vấn với [giải thích] (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-explain.html#search-request-explain) được đặt thành true và có thể sẽ có thông tin chi tiết hơn về điểm số. – keety

Trả lời

2

Điểm chỉ có nghĩa là để được liên quan đến tất cả các điểm khác trong một tập kết quả nhất định, do đó, một kết quả thiết lập nơi mọi thứ đều có số điểm của 3 là giống như một tập hợp kết quả mà mọi thứ đều có số điểm của 1.

Thực sự, mục đích duy nhất của liên quan _score là sắp xếp kết quả của truy vấn hiện tại theo đúng thứ tự. Bạn không nên cố gắng so sánh điểm số liên quan từ các truy vấn khác nhau. - Elasticsearch Guide

Điểm số không đổi bị bỏ qua vì không được kết hợp với truy vấn khác hoặc đang được chuẩn hóa. Như @keety đã nói, hãy kiểm tra kết quả của explain để xem chính xác những gì đang xảy ra.

0

Constant score query cho điểm bằng với bất kỳ tài liệu nào phù hợp với bất kỳ yếu tố chấm điểm nào như TF, IDF v.v. Điều này có thể được sử dụng khi bạn không quan tâm liệu tài liệu có phù hợp hay không. quá, không giống như filter.

Nếu bạn muốn ghi càng 3 theo nghĩa đen cho tất cả các tài liệu phù hợp cho một truy vấn cụ thể, sau đó bạn nên sử dụng function score query, một cái gì đó giống như

"query": { "function_score": { "functions": [ { "filter": { "term": { "source": "BBC" } }, "weight": 3 } ] } ... }

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