Fungsi fitur
Fungsi fitur dapat digunakan dalam ekspresi pengurutan. Sebagian besar fungsi ini hanya mendukung ekspresi penyortiran halus. Anda dapat menggabungkan berbagai sintaks dan pernyataan untuk menerapkan fitur pengurutan yang andal.
Bidang dokumen yang digunakan sebagai parameter fungsi fitur harus dibuat sebagai indeks atau properti sebagaimana ditentukan dalam dokumentasi fungsi tersebut.
gauss_decay: Menggunakan fungsi Gaussian untuk menghitung redaman berdasarkan jarak antara suatu nilai dan titik origin yang diberikan
1. Detail penggunaan:
gauss_decay(origin, value, scale, decay, offset)
2. Parameter:
-
origin: Titik origin dari fungsi redaman. Nilainya harus bertipe double.
-
value: Nilai yang digunakan untuk menghitung redaman. Nilainya harus bertipe double dan dapat diambil dari bidang dokumen atau ekspresi lainnya.
-
scale: Laju redaman. Nilainya harus bertipe double.
-
decay: Tingkat redaman ketika jarak dari origin sama dengan scale. Nilainya harus bertipe double. Parameter ini opsional dengan nilai default 0,000001.
-
offset: Redaman hanya dihitung jika jarak dari origin lebih besar daripada offset. Nilainya harus bertipe double. Parameter ini opsional dengan nilai default 0.
3. Nilai kembalian:
Mengembalikan nilai double dalam rentang [0, 1].
4. Skenario:
Skenario 1:
Cari hotel terdekat dari pengguna, diurutkan dari yang paling dekat hingga terjauh. Hotel dalam jarak 100 m dianggap sama dekatnya. Dalam skenario ini, longitude_in_doc dan latitude_in_doc adalah bujur dan lintang hotel, sedangkan longitude_in_query dan latitude_in_query adalah bujur dan lintang pengguna.
gauss_decay(0, distance(longitude_in_doc, latitude_in_doc, longtitude_in_query, latitude_in_query), 5, 0.000001, 0.1)
Skenario 2:
Cari ponsel dengan harga sekitar USD 300. Skor dokumen bernilai 0 jika harganya kurang dari 200 atau lebih dari 400. Harga ponsel dalam dokumen adalah price, dan kvpairs=price_key:2000. Rumusnya adalah sebagai berikut:
gauss_decay(kvpairs_value(price_key, FLOAT), price, 500)
5. Catatan:
-
Parameter fungsi harus dibuat sebagai properti.
-
Jika scale kurang dari atau sama dengan 0, fungsi mengembalikan 0.
-
Jika decay lebih dari atau sama dengan 1, fungsi mengembalikan 1.
-
Jika decay kurang dari atau sama dengan 0, nilainya diatur menjadi 0,000001.
-
Jika offset kurang dari 0, nilainya diatur menjadi 0.