İngilizce dilinde oku

Aracılığıyla paylaş


NoSQL için Azure Cosmos DB'de tam metin arama (önizleme)

NoSQL için Azure Cosmos DB artık uygulamalarınızın arama özelliklerini geliştirmek için tasarlanmış, önizleme aşamasında güçlü bir Tam Metin Arama özelliği sunuyor.

Not

Tam Metin ve Karma Arama erken önizleme aşamasındadır ve şu anda tüm bölgelerde kullanılamayabilir.

NoSQL için Azure Cosmos DB artık veri sorgulama özelliklerinizi geliştirmek için tasarlanmış, önizleme aşamasında güçlü bir Tam Metin Arama özelliği sunuyor. Bu özellik, sözcük kaldırmayı durdurma ve belirteç oluşturma gibi gelişmiş metin işleme tekniklerini içerir ve özel bir metin dizini aracılığıyla verimli ve etkili metin aramalarına olanak tanır. Tam metin araması, belgelerin belirli bir arama sorgusuyla olan ilgi düzeyini değerlendiren bir işlevle tam metin puanlaması da içerir. BM25 veya En İyi Eşleşen 25, belgeleri puanlayıp sıralamak için terim sıklığı, ters belge sıklığı ve belge uzunluğu gibi faktörleri dikkate alır. Bu, en uygun belgelerin arama sonuçlarının en üstünde görünmesini sağlayarak metin aramalarının doğruluğunu ve kullanışlılığını artırmaya yardımcı olur.

Tam Metin Arama, aşağıdakileri içeren çeşitli senaryolar için idealdir:

  • E-ticaret: Açıklamaları, incelemeleri ve diğer metin özniteliklerini temel alan ürünleri hızla bulun.
  • İçerik yönetimi: Makaleleri, blogları ve belgeleri verimli bir şekilde arayın.
  • Müşteri desteği: İlgili destek biletlerini, SSS'leri ve bilgi bankası makalelerini alın.
  • Kullanıcı içeriği: Gönderiler ve açıklamalar gibi kullanıcı tarafından oluşturulan içeriği analiz edin ve arayın.
  • Sohbet botları için RAG: Büyük metin kuruluşlarından ilgili bilgileri alarak sohbet botu yanıtlarını geliştirin, yanıtların doğruluğunu ve ilgi düzeyini artırın.
  • Çok Aracılı Yapay Zeka uygulamaları: Kapsamlı ve ayrıntılı içgörüler sağlayarak çok büyük miktarlardaki metin verilerini işbirliğiyle aramak ve analiz etmek için birden çok yapay zeka aracısını etkinleştirin.

Not

Tam Metin ve Karma Arama (önizleme) şu anda tüm bölgelerde kullanılamayabilir.

  1. "NoSQL için Tam Metin ve Karma Arama" önizleme özelliğini etkinleştirin.
  2. Kapsayıcıyı tam metin ilkesi ve tam metin dizini ile yapılandırın.
  3. Metin özellikleriyle verilerinizi ekleyin.
  4. Verilere karşı karma sorgular çalıştırın.

NoSQL önizleme özelliği için tam metin ve karma aramayı etkinleştirme

Tam metin araması, tam metin puanlaması ve karma arama için, kullanmadan önce NoSQL için Azure Cosmos DB hesabınızda önizleme özelliğini etkinleştirmeniz gerekir. Kaydolmak için aşağıdaki adımları izleyin:

  1. NoSQL için Azure Cosmos DB kaynak sayfanıza gidin.
  2. "Ayarlar" menü öğesinin altındaki "Özellikler" bölmesini seçin.
  3. "NoSQL API'si için Tam Metin ve Karma Arama (önizleme)" özelliğini seçin.
  4. Etkinleştirmek istediğinizi onaylamak için özelliğin açıklamasını okuyun.
  5. Vektör dizin oluşturma ve arama özelliğini açmak için "Etkinleştir" seçeneğini belirleyin.

Azure portalında tam metin ve karma arama önizleme özelliğinin ekran görüntüsü.

Tam metin arama özelliklerini kullanmak için önce iki ilke tanımlamanız gerekir:

  • Yeni tam metin sorgu sistemi işlevleri için hangi yolların metin içereceğini tanımlayan kapsayıcı düzeyinde bir tam metin ilkesi.
  • Verimli arama sağlayan dizin oluşturma ilkesine bir tam metin dizini eklendi.

Tam metin ilkesi

Tam metin araması için yapılandırmak istediğiniz her metin özelliği için hem özelliğin hem de path metnin metnini language bildirmeniz gerekir. Basit bir tam metin ilkesi şöyle olabilir:

JSON
{
   "defaultLanguage": "en-US",
   "fullTextPaths": [
       {
           "path": "/text",
           "language": "en-US"
       }
   ]
}

Diziye başka bir öğe fullTextPolicy ekleyerek birden çok metin yolunu tanımlama işlemi kolayca yapılır:

JSON
{
   "defaultLanguage": "en-US",
   "fullTextPaths": [
       {
           "path": "/text1",
           "language": "en-US"
       },
       {
           "path": "/text2",
           "language": "en-US"
       }
   ]
}

Not

Şu anda desteklenen tek dil İngilizcedir ("dil olarak en-us").

Önemli

Joker karakterler (*, []) şu anda tam metin ilkesinde veya tam metin dizininde desteklenmiyor.

Tam metin dizini

Tüm tam metin arama işlemleri, tam metin dizininden yararlanmalıdır. Tam metin dizini, aşağıdaki örneğe göre herhangi bir NoSQL için Azure Cosmos DB dizin ilkesinde kolayca tanımlanabilir.

JSON
{
    "indexingMode": "consistent",
    "automatic": true,
    "includedPaths": [
        {
            "path": "/*"
        }
    ],
    "excludedPaths": [
        {
            "path": "/\"_etag\"/?"
        },
    ],
    "fullTextIndexes": [
        {
            "path": "/text"
        }
    ]
}

Tam metin ilkelerinde olduğu gibi, tam metin dizinleri de birden çok yolda tanımlanabilir.

JSON
{
    "indexingMode": "consistent",
    "automatic": true,
    "includedPaths": [
        {
            "path": "/*"
        }
    ],
    "excludedPaths": [
        {
            "path": "/\"_etag\"/?"
        },
    ],
    "fullTextIndexes": [
        {
            "path": "/text"
        },
        {
            "path": "/text2"
        }
    ]
}

Tam metin arama sorguları

Tam metin arama ve puanlama işlemleri, NoSQL için Azure Cosmos DB sorgu dilinde aşağıdaki sistem işlevleri kullanılarak gerçekleştirilir:

  • FullTextContains: Belirli bir dize belgenin belirtilen özelliğinde yer alırsa döndürür true . Bu, sorgunuz tarafından döndürülen belgelere belirli anahtar sözcüklerin eklendiğinden emin olmak istediğinizde bir WHERE yan tümcede yararlıdır.
  • FullTextContainsAll: Verilen dizelerin tümü belgenin belirtilen özelliğinde yer alırsa döndürürtrue. Bu, sorgunuz tarafından döndürülen belgelere birden çok anahtar sözcüğün eklendiğinden emin olmak istediğinizde bir WHERE yan tümcede yararlıdır.
  • FullTextContainsAny: Verilen dizelerden herhangi biri belgenin belirtilen özelliğinde yer alırsa döndürürtrue. Bu, anahtar sözcüklerden en az birinin sorgunuz tarafından döndürülen belgelere eklendiğinden emin olmak istediğinizde bir WHERE yan tümcede yararlıdır.
  • FullTextScore: Bir puan döndürür. Bu yalnızca, döndürülen belgelerin tam metin puanının sırasına göre sıralandığı, en ilgili (en yüksek puanlama) belgelerin en üstte ve en az ilgili (en düşük puanlama) belgelerin en altında olduğu bir ORDER BY RANK yan tümcede kullanılabilir.

Kullanımdaki her işleve birkaç örnek aşağıda verilmiştir.

FullTextContains

Bu örnekte, özelliğinde c.text"bisiklet" anahtar sözcüğünü içeren ilk 10 sonucu elde etmek istiyoruz.

SQL
SELECT TOP 10 *
FROM c
WHERE FullTextContains(c.text, "bicycle")

FullTextContainsAll

Bu örnekte, özelliğinde c.text"kırmızı" ve "bisiklet" anahtar sözcüklerinin bulunduğu ilk 10 sonuç elde etmek istiyoruz.

SQL
SELECT TOP 10 *
FROM c
WHERE FullTextContainsAll(c.text, "red", "bicycle")

FullTextContainsAny

Bu örnekte, özelliğinde c.text"kırmızı" ve "bisiklet" veya "kaykay" anahtar sözcüklerinin bulunduğu ilk 10 sonucu elde etmek istiyoruz.

SQL
SELECT TOP 10 *
FROM c
WHERE FullTextContains(c.text, "red") AND FullTextContainsAny(c.text, "bicycle", "skateboard")

FullTextScore

Bu örnekte, "dağ" ve "bisiklet"in dahil edildiği ve ilgi sırasına göre sıralandığı ilk 10 sonucu elde etmek istiyoruz. Başka bir ifadeyle, bu terimleri daha sık içeren belgelerin listede daha yüksek görünmesi gerekir.

SQL
SELECT TOP 10 *
FROM c
ORDER BY RANK FullTextScore(c.text, ["bicycle", "mountain"])

Önemli

FullTextScore yalnızca yan tümcesinde ORDER BY RANK kullanılabilir ve deyiminde SELECT veya yan WHERE tümcesinde yansıtılamaz.