Pencarian teks lengkap di Azure Cosmos DB untuk NoSQL (pratinjau)
Azure Cosmos DB for NoSQL sekarang menawarkan fitur Pencarian Teks Lengkap yang kuat dalam pratinjau, yang dirancang untuk meningkatkan kemampuan pencarian aplikasi Anda.
Catatan
Teks Lengkap & Pencarian Hibrid sedang dalam pratinjau awal dan mungkin tidak tersedia di semua wilayah saat ini.
Apa itu pencarian teks lengkap?
Azure Cosmos DB for NoSQL sekarang menawarkan fitur Pencarian Teks Lengkap yang kuat dalam pratinjau, yang dirancang untuk meningkatkan kemampuan kueri data Anda. Fitur ini mencakup teknik pemrosesan teks tingkat lanjut seperti stemming, menghentikan penghapusan kata, dan tokenisasi, memungkinkan pencarian teks yang efisien dan efektif melalui indeks teks khusus. Pencarian teks lengkap juga menyertakan penilaian teks lengkap dengan fungsi yang mengevaluasi relevansi dokumen ke kueri pencarian tertentu. BM25, atau Best Matching 25, mempertimbangkan faktor-faktor seperti frekuensi istilah, frekuensi dokumen terbalik, dan panjang dokumen untuk menilai dan memberi peringkat dokumen. Ini membantu memastikan bahwa dokumen yang paling relevan muncul di bagian atas hasil pencarian, meningkatkan akurasi dan kegunaan pencarian teks.
Pencarian Teks Lengkap sangat ideal untuk berbagai skenario, termasuk:
- E-niaga: Menemukan produk dengan cepat berdasarkan deskripsi, ulasan, dan atribut teks lainnya.
- Manajemen konten: Cari secara efisien melalui artikel, blog, dan dokumen.
- Dukungan pelanggan: Ambil tiket dukungan, FAQ, dan artikel basis pengetahuan yang relevan.
- Konten pengguna: Menganalisis dan mencari melalui konten yang dihasilkan pengguna seperti postingan dan komentar.
- RAG untuk chatbot: Tingkatkan respons chatbot dengan mengambil informasi yang relevan dari korpora teks besar, meningkatkan akurasi dan relevansi jawaban.
- Aplikasi AI Multi-Agen: Memungkinkan beberapa agen AI untuk mencari dan menganalisis data teks dalam jumlah besar secara kolaboratif, memberikan wawasan komprehensif dan bernuansa.
Cara menggunakan pencarian teks lengkap
Catatan
Teks Lengkap & Pencarian Hibrid (pratinjau) mungkin tidak tersedia di semua wilayah saat ini.
- Aktifkan fitur pratinjau "Teks Lengkap & Pencarian Hibrid untuk NoSQL".
- Konfigurasikan kontainer dengan kebijakan teks lengkap dan indeks teks lengkap.
- Sisipkan data Anda dengan properti teks.
- Jalankan kueri hibrid terhadap data.
Mengaktifkan teks lengkap dan pencarian hibrid untuk fitur pratinjau NoSQL
Pencarian teks lengkap, penilaian teks lengkap, dan pencarian hibrid semuanya memerlukan pengaktifan fitur pratinjau di akun Azure Cosmos DB for NoSQL Anda sebelum menggunakan. Ikuti langkah-langkah di bawah ini untuk mendaftar:
- Navigasi ke halaman sumber daya Azure Cosmos DB for NoSQL Anda.
- Pilih panel "Fitur" di bawah item menu "Pengaturan".
- Pilih fitur "Full-Text & Hybrid Search for NoSQL API (pratinjau)".
- Baca deskripsi fitur untuk mengonfirmasi bahwa Anda ingin mengaktifkannya.
- Pilih "Aktifkan" untuk mengaktifkan pengindeksan vektor dan kemampuan pencarian.
Mengonfigurasi kebijakan dan indeks kontainer untuk pencarian hibrid
Untuk menggunakan kemampuan pencarian teks lengkap, Anda harus terlebih dahulu menentukan dua kebijakan:
- Kebijakan teks lengkap tingkat kontainer yang menentukan jalur apa yang akan berisi teks untuk fungsi sistem kueri teks lengkap baru.
- Indeks teks lengkap ditambahkan ke kebijakan pengindeksan yang memungkinkan pencarian yang efisien.
Kebijakan teks lengkap
Untuk setiap properti teks yang ingin Anda konfigurasi untuk pencarian teks lengkap, Anda harus mendeklarasikan properti path
dengan teks dan language
teks. Kebijakan teks lengkap sederhana dapat berupa:
{
"defaultLanguage": "en-US",
"fullTextPaths": [
{
"path": "/text",
"language": "en-US"
}
]
}
Menentukan beberapa jalur teks mudah dilakukan dengan menambahkan elemen lain ke fullTextPolicy
array:
{
"defaultLanguage": "en-US",
"fullTextPaths": [
{
"path": "/text1",
"language": "en-US"
},
{
"path": "/text2",
"language": "en-US"
}
]
}
Catatan
Bahasa Inggris ("en-us" sebagai bahasa) adalah satu-satunya bahasa yang didukung saat ini.
Penting
Karakter kartubebas (*, []) saat ini tidak didukung dalam kebijakan teks lengkap atau indeks teks lengkap.
Indeks teks lengkap
Setiap operasi pencarian teks lengkap harus menggunakan indeks teks lengkap. Indeks teks lengkap dapat dengan mudah didefinisikan dalam kebijakan indeks Azure Cosmos DB for NoSQL sesuai contoh di bawah ini.
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
}
]
}
Sama seperti kebijakan teks lengkap, indeks teks lengkap dapat ditentukan pada beberapa jalur.
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
},
{
"path": "/text2"
}
]
}
Kueri pencarian teks lengkap
Operasi pencarian dan penilaian teks lengkap dilakukan menggunakan fungsi sistem berikut dalam bahasa kueri Azure Cosmos DB for NoSQL:
FullTextContains
: Mengembalikantrue
jika string yang diberikan terkandung dalam properti dokumen yang ditentukan. Ini berguna dalamWHERE
klausa saat Anda ingin memastikan kata kunci tertentu disertakan dalam dokumen yang dikembalikan oleh kueri Anda.FullTextContainsAll
: Mengembalikantrue
jika semua string yang diberikan terkandung dalam properti dokumen yang ditentukan. Ini berguna dalamWHERE
klausa saat Anda ingin memastikan bahwa beberapa kata kunci disertakan dalam dokumen yang dikembalikan oleh kueri Anda.FullTextContainsAny
: Mengembalikantrue
jika salah satu string yang diberikan terkandung dalam properti dokumen yang ditentukan. Ini berguna dalamWHERE
klausa saat Anda ingin memastikan bahwa setidaknya salah satu kata kunci disertakan dalam dokumen yang dikembalikan oleh kueri Anda.FullTextScore
: Mengembalikan skor. Ini hanya dapat digunakan dalam klausulORDER BY RANK
, di mana dokumen yang dikembalikan diurutkan berdasarkan peringkat skor teks lengkap, dengan dokumen (penilaian tertinggi) paling relevan di bagian atas, dan dokumen yang paling tidak relevan (penilaian terendah) di bagian bawah.
Berikut adalah beberapa contoh setiap fungsi yang digunakan.
FullTextContains
Dalam contoh ini, kita ingin mendapatkan 10 hasil pertama di mana kata kunci "sepeda" terkandung dalam properti c.text
.
SELECT TOP 10 *
FROM c
WHERE FullTextContains(c.text, "bicycle")
FullTextContainsAll
Dalam contoh ini, kita ingin mendapatkan 10 hasil pertama di mana kata kunci "merah" dan "sepeda" terkandung dalam properti c.text
.
SELECT TOP 10 *
FROM c
WHERE FullTextContainsAll(c.text, "red", "bicycle")
FullTextContainsAny
Dalam contoh ini, kita ingin mendapatkan 10 hasil pertama di mana kata kunci "merah" dan "bicycle" atau "skateboard" terkandung dalam properti c.text
.
SELECT TOP 10 *
FROM c
WHERE FullTextContains(c.text, "red") AND FullTextContainsAny(c.text, "bicycle", "skateboard")
FullTextScore
Dalam contoh ini, kita ingin mendapatkan 10 hasil pertama di mana "gunung" dan "sepeda" disertakan, dan diurutkan berdasarkan urutan relevansi. Artinya, dokumen yang memiliki istilah-istilah ini lebih sering akan muncul lebih tinggi dalam daftar.
SELECT TOP 10 *
FROM c
ORDER BY RANK FullTextScore(c.text, ["bicycle", "mountain"])
Penting
FullTextScore hanya dapat digunakan dalam ORDER BY RANK
klausul dan tidak diproyeksikan dalam SELECT
pernyataan atau dalam WHERE
klausa.