Menambahkan profil penilaian untuk meningkatkan skor pencarian

Dalam artikel ini, Anda akan mempelajari cara menentukan profil penilaian. Profil penilaian adalah kriteria untuk meningkatkan skor pencarian berdasarkan parameter yang Anda berikan. Misalnya, Anda mungkin ingin kecocokan yang ditemukan di bidang "tag" lebih relevan daripada kecocokan yang sama yang ditemukan di "deskripsi". Kriteria dapat berupa bidang tertimbang (seperti contoh "tag") atau fungsi.

Profil penilaian ditentukan dalam indeks pencarian dan dipanggil pada bidang non-vektor dalam permintaan kueri. Anda dapat membuat beberapa profil lalu mengubah logika kueri untuk memilih profil mana yang digunakan.

Catatan

Tidak terbiasa dengan konsep relevansi? Segmen video berikut di YouTube diteruskan dengan cepat ke cara kerja profil penilaian di Azure AI Search. Anda juga dapat mengunjungi Relevansi dan penilaian di Azure AI Search untuk latar belakang lainnya.

Definisi profil penilaian

Profil penilaian diberi nama objek yang ditentukan dalam skema indeks. Profil dapat terdiri dari bidang, fungsi, dan parameter tertimbang.

Definisi berikut menunjukkan profil sederhana bernama "geo". Contoh ini meningkatkan hasil yang memiliki istilah pencarian di bidang hotelName. Ini juga menggunakan distance fungsi untuk mendukung hasil yang berada dalam jarak 10 kilometer dari lokasi saat ini. Jika seseorang mencari dengan istilah 'penginapan', dan 'penginapan' kebetulan menjadi bagian dari nama hotel, dokumen yang mencakup hotel dengan 'penginapan' dalam radius 10 KM dari lokasi saat ini akan tampak lebih tinggi dalam hasil pencarian.

"scoringProfiles": [
  {  
    "name":"geo",
    "text": {  
      "weights": {  
        "hotelName": 5
      }                              
    },
    "functions": [
      {  
        "type": "distance",
        "boost": 5,
        "fieldName": "location",
        "interpolation": "logarithmic",
        "distance": {
          "referencePointParameter": "currentLocation",
          "boostingDistance": 10
        }                        
      }                                      
    ]                     
  }            
]

Untuk menggunakan profil penilaian ini, kueri Anda dirumuskan agar menentukan parameter scoringProfile dalam permintaan. Jika Anda menggunakan REST API, kueri ditentukan melalui permintaan GET dan POST. Dalam contoh berikut, "currentLocation" memiliki pemisah satu tanda hubung (-). Ini diikuti oleh koordinat bujur dan lintang, di mana bujur adalah nilai negatif.

GET /indexes/hotels/docs?search+inn&scoringProfile=geo&scoringParameter=currentLocation--122.123,44.77233&api-version=2020-06-30

Perhatikan perbedaan sintaksis saat menggunakan POST. Di POST, "scoringParameters" bersifat jamak dan merupakan array.

POST /indexes/hotels/docs&api-version=2020-06-30
{
    "search": "inn",
    "scoringProfile": "geo",
    "scoringParameters": ["currentLocation--122.123,44.77233"]
}

Kueri ini mencari istilah "penginapan" dan meneruskan lokasi saat ini. Perhatikan bahwa kueri ini menyertakan parameter lain, seperti scoringParameter. Parameter kueri, termasuk "scoringParameter", dijelaskan dalam Dokumen Pencarian (REST API).

Klik Contoh selengkapnya untuk meninjau contoh profil penilaian yang lebih detail.

Bagaimana skor dihitung

Skor dihitung untuk kueri pencarian teks lengkap. Kecocokan dinilai berdasarkan seberapa relevan kecocokan, dan kecocokan penilaian tertinggi dikembalikan dalam respons kueri. Skor keseluruhan untuk setiap dokumen adalah agregasi skor individu untuk setiap bidang, di mana skor individu dari setiap bidang dihitung berdasarkan frekuensi istilah dan frekuensi dokumen dari istilah yang dicari dalam bidang tersebut (dikenal sebagai TF-IDF atau frekuensi istilah-inversi frekuensi dokumen).

Anda dapat menggunakan parameter featuresMode (pratinjau) untuk meminta detail penilaian tambahan dengan hasil pencarian (termasuk skor tingkat bidang).

Kapan harus menambahkan logika penilaian

Anda harus membuat satu atau beberapa profil penilaian jika perilaku peringkat default tidak berjalan cukup jauh dalam memenuhi tujuan bisnis Anda. Misalnya, Anda mungkin memutuskan bahwa relevansi pencarian harus mendukung item yang baru ditambahkan. Demikian juga, Anda mungkin memiliki bidang yang berisi margin laba, atau beberapa bidang lain yang menunjukkan potensi pendapatan. Meningkatkan hasil yang lebih berarti bagi pengguna atau bisnis Anda sering menjadi faktor penentu dalam penggunaan profil penilaian.

Pengurutan berbasis relevansi dalam halaman pencarian juga diimplementasikan melalui profil penilaian. Pertimbangkan halaman hasil pencarian yang telah Anda gunakan di masa lalu yang memungkinkan Anda mengurutkan berdasarkan harga, tanggal, peringkat, atau relevansi. Di Pencarian Azure AI, profil penilaian dapat digunakan untuk mendorong opsi 'relevansi'. Definisi relevansi ditentukan pengguna, diprediksikan pada tujuan bisnis dan jenis pengalaman pencarian yang ingin Anda berikan.

Langkah-langkah untuk menambahkan profil penilaian

Untuk menerapkan perilaku penilaian kustom, tambahkan profil penilaian ke skema yang menentukan indeks. Anda dapat memiliki hingga 100 profil penilaian dalam indeks (lihat Batas Layanan), namun Anda hanya dapat menentukan satu profil dalam satu waktu pada kueri tertentu.

  1. Mulailah dengan definisi indeks. Anda dapat menambahkan dan memperbarui profil penilaian pada indeks yang sudah ada tanpa harus membangunnya kembali. Gunakan permintaan Perbarui Indeks untuk memposting revisi Anda.

  2. Tempelkan templat yang disediakan dalam artikel ini.

  3. Berikan nama. Profil penilaian bersifat opsional, namun jika Anda menambahkan, nama akan diperlukan. Pastikan untuk mengikuti konvensi penamaan Azure AI Search untuk bidang (dimulai dengan huruf, menghindari karakter khusus dan kata yang dipesan).

  4. Tentukan kriteria peningkatan. Satu profil dapat berisi bidang, fungsi tertimbang, atau keduanya.

Anda harus bekerja secara berulang, menggunakan himpunan data yang akan membantu Anda membuktikan atau menyangkal efektivitas profil tertentu.

Profil penilaian dapat ditentukan di portal Azure sebagaimana yang ditunjukkan dalam cuplikan layar berikut, atau secara terprogram melalui REST API atau di Azure SDK, seperti kelas Profil Penilaian di Azure SDK untuk .NET.

Add scoring profiles page

Menggunakan bidang tertimbang

Gunakan bidang tertimbang saat konteks bidang penting dan kueri adalah pencarian teks lengkap. Misalnya, jika kueri menyertakan istilah "bandara", Anda mungkin ingin agar "bandara" di bidang Description memiliki bobot lebih dari di HotelName.

Bidang tertimbang terdiri dari bidang yang dapat dicari dan angka positif yang digunakan sebagai pengali. Jika skor bidang asli HotelName adalah 3, skor yang ditingkatkan untuk bidang itu menjadi 6, yang berkontribusi pada skor keseluruhan yang lebih tinggi untuk dokumen induk itu sendiri.

"scoringProfiles": [  
    {  
      "name": "boostKeywords",  
      "text": {  
        "weights": {  
          "HotelName": 2,  
          "Description": 5 
        }  
      }  
    }
]

Menggunakan fungsi

Gunakan fungsi ketika bobot relatif sederhana tidak mencukupi atau tidak berlaku, seperti halnya jarak dan kesegaran, yang merupakan perhitungan atas data numerik. Anda dapat menentukan beberapa fungsi per profil penilaian. Untuk informasi selengkapnya tentang jenis data EDM yang digunakan dalam Pencarian Azure AI, lihat Jenis data yang didukung.

Function Deskripsi
"freshness" Meningkatkan menurut nilai dalam bidang datetime (Edm.DateTimeOffset). Fungsi ini memiliki atribut "boostingDuration" sehingga Anda dapat menentukan nilai yang mewakili rentang waktu di mana peningkatan terjadi.
"magnitude" Peningkatan berdasarkan seberapa tinggi atau rendah suatu nilai numerik. Skenario yang memanggil fungsi ini meliputi peningkatan berdasarkan margin laba, harga tertinggi, harga terendah, atau hitungan unduhan. Fungsi ini hanya dapat digunakan dengan bidang Edm.Double dan Edm.Int. Untuk fungsi magnitude ini, Anda dapat membalikkan rentang, tinggi ke rendah, jika Anda menginginkan pola terbalik (misalnya, untuk meningkatkan item dengan harga lebih rendah lebih dari item dengan harga lebih tinggi). Mengingat kisaran harga dari $100 hingga $1, Anda akan menetapkan "boostingRangeStart" pada 100 dan "boostingRangeEnd" pada 1 untuk meningkatkan item dengan harga lebih rendah.
"distance" Peningkatan berdasarkan kedekatan atau lokasi geografis. Fungsi ini hanya dapat digunakan dengan bidang Edm.GeographyPoint.
"tag" Peningkatan berdasarkan tag yang umum untuk dokumen pencarian dan string kueri. Tag disediakan dalam "tagsParameter". Fungsi ini hanya dapat digunakan dengan bidang pencarian jenis Edm.String dan Collection(Edm.String).

Aturan untuk menggunakan fungsi

  • Fungsi hanya dapat diterapkan ke bidang yang diatribusikan sebagai dapat difilter.
  • Jenis fungsi ("freshness", "magnitude", "distance", "tag") harus huruf kecil.
  • Fungsi tidak dapat menyertakan nilai null atau kosong.

Template

Bagian ini memperlihatkan sintaksis dan templat untuk mencetak profil. Lihat Referensi properti di bagian berikutnya untuk melihat deskripsi atribut profil penilaian.

"scoringProfiles": [  
  {   
    "name": "name of scoring profile",   
    "text": (optional, only applies to searchable fields) {   
      "weights": {   
        "searchable_field_name": relative_weight_value (positive #'s),   
        ...   
      }   
    },   
    "functions": (optional) [  
      {   
        "type": "magnitude | freshness | distance | tag",   
        "boost": # (positive number used as multiplier for raw score != 1),   
        "fieldName": "(...)",   
        "interpolation": "constant | linear (default) | quadratic | logarithmic",   

        "magnitude": {
          "boostingRangeStart": #,   
          "boostingRangeEnd": #,   
          "constantBoostBeyondRange": true | false (default)
        }  

        // ( - or -)  

        "freshness": {
          "boostingDuration": "..." (value representing timespan over which boosting occurs)   
        }  

        // ( - or -)  

        "distance": {
          "referencePointParameter": "...", (parameter to be passed in queries to use as reference location)   
          "boostingDistance": # (the distance in kilometers from the reference location where the boosting range ends)   
        }   

        // ( - or -)  

        "tag": {
          "tagsParameter":  "..."(parameter to be passed in queries to specify a list of tags to compare against target field)   
        }
      }
    ],   
    "functionAggregation": (optional, applies only when functions are specified) "sum (default) | average | minimum | maximum | firstMatching"   
  }   
],   
"defaultScoringProfile": (optional) "...", 

Referensi properti

Atribut KETERANGAN
nama Harus diisi. Ini adalah nama profil penilaian. Ini mengikuti konvensi penamaan yang sama dari sebuah bidang. Ini harus dimulai dengan huruf, tidak boleh berisi titik, titik dua, atau simbol @, dan tidak dapat dimulai dengan frasa azureSearch (peka huruf besar/kecil).
text Berisi properti bobot.
bobot Opsional. Pasangan nama-nilai yang menentukan bidang yang dapat dicari dan bilangan bulat positif atau angka floating-point untuk meningkatkan skor bidang. Bilangan bulat atau angka positif menjadi pengali untuk skor bidang asli yang dihasilkan oleh algoritma peringkat. Misalnya, jika skor bidang adalah 2 dan nilai beratnya adalah 3, skor yang ditingkatkan untuk bidang tersebut menjadi 6. Skor bidang individu kemudian diagregasi untuk membuat skor bidang dokumen, yang kemudian digunakan untuk menentukan peringkat dokumen dalam hasil.
fungsi Opsional. Fungsi penilaian hanya dapat diterapkan ke bidang yang dapat difilter.
> jenis fungsi Wajib untuk fungsi penilaian. Menunjukkan jenis fungsi yang akan digunakan. Nilai yang valid termasuk besaran, kesegaran, jarak, dan tag. Anda dapat menyertakan lebih dari satu fungsi di setiap profil penilaian. Nama fungsi harus dalam huruf kecil.
> peningkatan fungsi Wajib untuk fungsi penilaian. Angka positif yang digunakan sebagai pengali untuk skor mentah. Tidak boleh sama dengan 1.
> nama bidang fungsi Wajib untuk fungsi penilaian. Fungsi penilaian hanya dapat diterapkan ke bidang yang merupakan bagian dari kumpulan bidang indeks, dan yang dapat difilter. Selain itu, setiap jenis fungsi memperkenalkan pembatasan tambahan (kesegaran digunakan dengan bidang datetime, besaran dengan bidang bilangan bulat atau ganda, dan jarak dengan bidang lokasi). Anda hanya dapat menentukan satu bidang per definisi fungsi. Misalnya, untuk menggunakan besaran dua kali pada profil yang sama, Anda harus menyertakan dua besaran definisi, satu untuk masing-masing bidang.
> interpolasi fungsi Wajib untuk fungsi penilaian. Mendefinisikan kemiringan yang skornya meningkat dari awal rentang hingga akhir rentang. Nilai yang valid termasuk Linear (default), Konstanta, Kuadrat, dan Logaritma. Lihat Mengatur interpolasi untuk detailnya.
besaran > fungsi Fungsi penilaian besaran digunakan untuk mengganti peringkat berdasarkan rentang nilai untuk bidang numerik. Beberapa contoh penggunaan yang paling umum dari ini adalah:

"Peringkat bintang:" Mengubah penilaian berdasarkan nilai dalam bidang "Peringkat Bintang". Jika dua item relevan, item dengan peringkat yang lebih tinggi akan ditampilkan terlebih dahulu.
"Margin:" Ketika dua dokumen relevan, peritel mungkin ingin meningkatkan dokumen yang memiliki margin lebih tinggi terlebih dahulu.
"Jumlah klik:" Untuk aplikasi yang melacak tindakan klik ke produk atau halaman, Anda dapat menggunakan besaran untuk meningkatkan item yang cenderung mendapatkan lalu lintas terbanyak.
"Jumlah unduhan:" Untuk aplikasi yang melacak unduhan, fungsi besaran memungkinkan Anda meningkatkan item yang memiliki unduhan terbanyak.
> peningkatan besaran > fungsiRangeStart Mengatur nilai awal rentang di mana besarannya diberi skor. Nilai harus berupa bilangan bulat atau angka floating-point. Untuk peringkat bintang 1 sampai 4, ini akan menjadi 1. Untuk margin lebih dari 50%, ini akan menjadi 50.
> fungsi besaran > boostingRangeEnd Mengatur nilai akhir rentang di mana besarannya diberi skor. Nilai harus berupa bilangan bulat atau angka floating-point. Untuk peringkat bintang 1 sampai 4, ini akan menjadi 4.
fungsi besar > konstantaBoostBeyondRange > Nilai yang valid adalah true atau false (default). Jika disetel ke true, peningkatan penuh akan terus berlaku untuk dokumen yang memiliki nilai untuk bidang target yang lebih tinggi dari ujung atas rentang. Jika false, peningkatan fungsi ini tidak akan diterapkan ke dokumen yang memiliki nilai untuk bidang target yang berada di luar rentang.
kesegaran > fungsi Fungsi penilaian kesegaran digunakan untuk mengganti skor peringkat untuk item berdasarkan nilai dalam bidang DateTimeOffset. Misalnya, item dengan tanggal yang lebih baru dapat diberi peringkat lebih tinggi dari item yang lebih lama.

Dimungkinkan juga untuk memberi peringkat item seperti acara kalender dengan tanggal mendatang sehingga item yang lebih dekat dengan saat ini dapat diberi peringkat lebih tinggi daripada item lebih jauh di masa mendatang.

Dalam rilis layanan saat ini, salah satu ujung rentang akan diperbaiki ke waktu saat ini. Ujung lainnya adalah waktu di masa lalu berdasarkan boostingDuration. Untuk meningkatkan rentang waktu di masa mendatang, gunakan boostingDuration negatif.

Tingkat di mana peningkatan perubahan dari rentang maksimum dan minimum ditentukan oleh Interpolasi yang diterapkan ke profil penilaian (lihat gambar di bawah). Untuk membalikkan faktor peningkatan yang diterapkan, pilih faktor peningkatan kurang dari 1.
fungsi peningkatan kesegaranDurasi >> Menetapkan periode kedaluwarsa, setelah itu peningkatan akan berhenti untuk dokumen tertentu. Lihat Mengatur boostingDuration di bagian berikut untuk sintaks dan contoh.
> jarak fungsi Fungsi penilaian jarak digunakan untuk memengaruhi skor dokumen berdasarkan seberapa dekat atau jauh relatif terhadap lokasi geografis referensi. Lokasi referensi diberikan sebagai bagian dari kueri dalam parameter (menggunakan parameter kueri scoringParameter) sebagai lon,lat argumen.
> referensi jarak > fungsiPointParameter Parameter yang akan diteruskan dalam kueri yang akan digunakan sebagai lokasi referensi (menggunakan parameter kueri scoringParameter).
> peningkatan jarak > fungsiDistance Angka yang menunjukkan jarak dalam kilometer dari lokasi referensi di mana rentang peningkatan berakhir.
> tag fungsi Fungsi penilaian tag digunakan untuk memengaruhi skor dokumen berdasarkan tag dalam dokumen dan kueri pencarian. Dokumen yang memiliki kesamaan tag dengan kueri pencarian akan ditingkatkan. Tag untuk kueri pencarian disediakan sebagai parameter penilaian di setiap permintaan pencarian (menggunakan parameter kueri scoringParameter).
tag functions >> tagsParameter Parameter yang akan diteruskan dalam kueri untuk menentukan tag untuk permintaan tertentu (menggunakan parameter kueri scoringParameter). Parameter terdiri dari daftar seluruh istilah yang dibatasi koma. Jika tag tertentu dalam daftar itu sendiri adalah daftar yang dibatasi koma, Anda dapat menggunakan normalizer teks pada bidang untuk menghapus koma pada waktu kueri (memetakan karakter koma ke spasi). Pendekatan ini akan "meratakan" daftar sehingga semua istilah adalah string panjang tunggal dari istilah yang dibatasi koma.
functionAggregation Opsional. Hanya berlaku ketika fungsi ditentukan. Nilai yang valid meliputi: jumlah (default), rata-rata, minimum, maksimum, dan firstMatching. Skor pencarian adalah nilai tunggal yang dihitung dari beberapa variabel, termasuk beberapa fungsi. Atribut ini menunjukkan bagaimana peningkatan semua fungsi digabungkan menjadi satu peningkatan agregat yang kemudian diterapkan pada skor dokumen dasar. Skor dasar didasarkan pada nilai tf-idf yang dihitung dari dokumen dan kueri pencarian.
defaultScoringProfile Saat menjalankan permintaan pencarian, jika tidak ada profil penilaian yang ditentukan, maka penilaian default akan digunakan (hanya tf-idf).

Anda dapat mengganti default bawaan, mengganti profil kustom sebagai profil yang akan digunakan saat tidak ada profil tertentu yang diberikan dalam permintaan pencarian.

Mengatur interpolasi

Interpolasi memungkinkan Anda mengatur bentuk kemiringan yang digunakan untuk penilaian. Karena penilaiannya tinggi ke rendah, kemiringan selalu menurun, tetapi interpolasinya menentukan kurva kemiringan turun. Interpolasi berikut dapat digunakan:

Interpolasi Deskripsi
linear Untuk item yang berada dalam rentang maks dan min, peningkatan yang diterapkan pada item akan dilakukan dalam jumlah yang terus menurun. Linear adalah interpolasi default untuk profil penilaian.
constant Untuk item yang berada dalam rentang awal dan akhir, peningkatan konstan akan diterapkan ke hasil peringkat.
quadratic Dibandingkan dengan interpolasi Linear yang memiliki peningkatan yang terus menurun, Kuadrat awalnya akan menurun pada kecepatan yang lebih kecil kemudian saat mendekati rentang akhir, ini akan menurun pada interval yang jauh lebih tinggi. Opsi interpolasi ini tidak diizinkan dalam fungsi penilaian tag.
logarithmic Dibandingkan dengan interpolasi Linear yang memiliki peningkatan yang terus menurun, Logaritma awalnya akan menurun pada kecepatan yang lebih tinggi kemudian saat mendekati rentang akhir, ini akan menurun pada interval yang jauh lebih kecil. Opsi interpolasi ini tidak diizinkan dalam fungsi penilaian tag.

Constant, linear, quadratic, log10 lines on graph

Mengatur boostingDuration

boostingDuration adalah atribut fungsi freshness. Anda menggunakannya untuk menetapkan periode kedaluwarsa, setelah itu peningkatan akan berhenti untuk dokumen tertentu. Misalnya, untuk meningkatkan lini produk atau merek untuk periode promosi 10 hari, Anda akan menentukan periode 10 hari sebagai "P10D" untuk dokumen tersebut.

boostingDuration harus diformat sebagai nilai “dayTimeDuration” XSD (subset terbatas dari nilai durasi ISO 8601). Pola untuk ini adalah: "P[nD][T[nH][nM][nS]]".

Tabel berikut ini menyediakan beberapa contoh.

Durasi boostingDuration
1 hari "P1D"
2 hari dan 12 jam "P2DT12H"
15 menit "PT15M"
30 hari, 5 jam, 10 menit, dan 6,334 detik "P30DT5H10M6.334S"

Untuk contoh selengkapnya, lihat Skema XML: Jenis data (situs web W3.org).

Contoh selengkapnya

Contoh ini memperlihatkan skema indeks dengan dua profil penilaian (boostGenre, newAndHighlyRated). Setiap kueri terhadap indeks ini yang menyertakan profil sebagai parameter kueri akan menggunakan profil untuk menilai tataan hasil.

Profil boostGenre menggunakan bidang teks tertimbang, meningkatkan kecocokan yang ditemukan di bidang albumTitle, genre, dan artistName. Bidang tersebut masing-masing ditingkatkan 1,5, 5, dan 2. Mengapa genre meningkat jauh lebih tinggi daripada yang lain? Jika pencarian dilakukan melalui data yang agak homogen (seperti halnya dengan 'genre' dalam musicstoreindex), Anda mungkin memerlukan ragam yang lebih besar dalam bobot relatif. Misalnya, dalam musicstoreindex, 'rock' muncul sebagai genre dan dalam deskripsi genre yang diungkapkan secara identik. Jika Anda ingin agar genre melebihi bobot deskripsi genre, bidang genre akan membutuhkan bobot relatif yang jauh lebih tinggi.

{  
  "name": "musicstoreindex",  
  "fields": [  
    { "name": "key", "type": "Edm.String", "key": true },  
    { "name": "albumTitle", "type": "Edm.String" },  
    { "name": "albumUrl", "type": "Edm.String", "filterable": false },  
    { "name": "genre", "type": "Edm.String" },  
    { "name": "genreDescription", "type": "Edm.String", "filterable": false },  
    { "name": "artistName", "type": "Edm.String" },  
    { "name": "orderableOnline", "type": "Edm.Boolean" },  
    { "name": "rating", "type": "Edm.Int32" },  
    { "name": "tags", "type": "Collection(Edm.String)" },  
    { "name": "price", "type": "Edm.Double", "filterable": false },  
    { "name": "margin", "type": "Edm.Int32", "retrievable": false },  
    { "name": "inventory", "type": "Edm.Int32" },  
    { "name": "lastUpdated", "type": "Edm.DateTimeOffset" }  
  ],  
  "scoringProfiles": [  
    {  
      "name": "boostGenre",  
      "text": {  
        "weights": {  
          "albumTitle": 1.5,  
          "genre": 5,  
          "artistName": 2  
        }  
      }  
    },  
    {  
      "name": "newAndHighlyRated",  
      "functions": [  
        {  
          "type": "freshness",  
          "fieldName": "lastUpdated",  
          "boost": 10,  
          "interpolation": "quadratic",  
          "freshness": {  
            "boostingDuration": "P365D"  
          }  
        },  
        {
          "type": "magnitude",  
          "fieldName": "rating",  
          "boost": 10,  
          "interpolation": "linear",  
          "magnitude": {  
            "boostingRangeStart": 1,  
            "boostingRangeEnd": 5,  
            "constantBoostBeyondRange": false  
          }  
        }  
      ]  
    }  
  ],  
  "suggesters": [  
    {  
      "name": "sg",  
      "searchMode": "analyzingInfixMatching",  
      "sourceFields": [ "albumTitle", "artistName" ]  
    }  
  ]   
}  

Baca juga