2011-06-20 47 views
5

Tôi muốn tăng truy vấn của mình bằng số lượt xem của mục; Tôi muốn sử dụng một cái gì đó như view_count/max_view_count cho mục đích này, để có thể đo lường cách số lượt xem của mục có liên quan đến số lượt xem lớn nhất trong chỉ mục. Tôi biết how to boost the results with a function query, nhưng làm cách nào tôi có thể dễ dàng nhận được số lượt xem tối đa? Nếu ai đó có thể cung cấp một ví dụ, nó sẽ rất hữu ích ...Nhận giá trị tối đa của trường trong solr

Trả lời

9

Không có bất kỳ hàm tổng hợp nào theo cách bạn có thể nghĩ về chúng từ SQL. Cách đơn giản nhất để làm điều đó là phải có một quá trình gồm hai bước:

  • Lấy giá trị tối đa thông qua một truy vấn phù hợp với một loại
  • sử dụng nó với tối đa chức năng()

Vì vậy, , một cái gì đó như:

q=*:*&sort=view_count desc&rows=1&fl=view_count 

... để có được một mục với VIEW_COUNT max, mà bạn ghi lại ở đâu đó, và sau đó

q=whatever&bq=div(view_count, max(the_max_view_count, 1)) 

Lưu ý rằng hàm max() không thực hiện tối đa tổng hợp; chỉ nhận được tối đa số lần xem tối đa bạn vượt qua hoặc 1 (để tránh lỗi chia cho số không).

Nếu bạn có trường đa giá trị (bạn không thể sắp xếp), bạn cũng có thể sử dụng StatsComponent để nhận giá trị CPC Dù bằng cách nào, bạn có thể sẽ muốn làm điều này một lần, không phải cho mỗi truy vấn (nói, mỗi đêm vào lúc nửa đêm hoặc bất cứ điều gì một khi tập dữ liệu của bạn lắng xuống).

+0

Cảm ơn câu trả lời của bạn ... Ngoài ra: Tôi nghĩ khá khó để tìm thấy bất kỳ tài liệu nào về điều này, tại apache chỉ có liên kết ở trên và một chủ đề về truy vấn chức năng ... khác? –

5

Bạn chỉ có thể thêm: & stats = true & stats.field = view_count Bạn sẽ thấy một số liệu thống kê nhỏ trên trường được chỉ định đó. Thêm tài liệu here

+0

Chúng tôi có thể sử dụng giá trị tối đa và tối thiểu chúng tôi nhận được từ số liệu thống kê, vào truy vấn chức năng không? – Ankita

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