Azure Bilişsel Arama'de sorgu oluşturma

Sorguyu ilk kez oluşturursanız, bu makalede sorguları ayarlamaya yönelik yaklaşımlar ve yöntemler açıklanmıştır. Ayrıca bir sorgu isteği de tanıtarak alan özniteliklerinin ve dil çözümleyicilerin sorgu sonuçlarını nasıl etkileyebilirsiniz?

Sorgu isteği nedir?

Sorgu, tek bir arama dizininin docs koleksiyonuna yönelik salt okunur bir istektir. Terimlerden, tırnak içine alınmış tümceciklerden ve işleçlerden oluşan sorgu ifadesini içeren bir 'search' parametresini belirtir.

İstekteki ek parametreler sorgu ve yanıt için daha fazla tanım sağlar. Örneğin, 'searchFields' kapsamları belirli alanlara yönelik sorgu yürütmeyi, 'select' ise sonuçlarda hangi alanların döndürüldü olduğunu belirtir ve 'count', dizinde bulunan eşleşme sayısını döndürür.

Aşağıdaki örnek, kullanılabilir parametrelerin bazılarını göstererek sorgu isteği hakkında genel bir fikir verir. Sorgu oluşturma hakkında daha fazla bilgi için bkz. Sorgu türleri ve bileşimleri ve Arama Belgeleri (REST).

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30
{
    "search": "NY +view",
    "queryType": "simple",
    "searchMode": "all",
    "searchFields": "HotelName, Description, Address/City, Address/StateProvince, Tags",
    "select": "HotelName, Description, Address/City, Address/StateProvince, Tags",
    "count": "true"
}

İstemci seçme

Azure portal veya Postman gibi bir araç ya da API'leri kullanarak sorgu istemcisi örneği hazır eden koda ihtiyacınız vardır. Erken geliştirme Azure portal kavram kanıtı testi için api'leri veya REST API'leri öneririz.

İzinler

Sorgu isteği, üst bilgide geçirilen bir API anahtarı aracılığıyla verilen okuma izinleri gerektirir. Sorgu istekleri de dahil olmak üzere tüm işlem bir yönetici APIanahtarı altında çalışır, ancak sorgu istekleri isteğe bağlı olarak bir sorgu API anahtarı kullanabilir. Sorgu API'si anahtarları kesinlikle önerilir. Hizmet başına en fazla 50 oluşturabilir ve farklı uygulamalara farklı anahtarlar atabilirsiniz.

Bu Azure portal araçlara, sihirbazlara ve nesnelere erişim, hizmette Katkıda Bulunan rolüne veya daha üst bir role üye gerektirir.

Dizin Azure portal sorgulamak için dizin kullanma

Arama gezgini (portal), temel alınan arama Azure portal dizinlere karşı sorgular çalıştıran bir sorgu arabirimidir. Portal dahili olarak Arama Belgeleri istekleri yapar ancak Otomatik Tamamlama, Öneriler veya Belge Arama çağıramaz.

Önizleme dahil olmak üzere herhangi bir REST API sürümünü seçin. Bir sorgu dizesi, tüm sorgu parametreleri (filtreleme, seçme, searchFields vb.) desteğiyle birlikte basit veya tam söz dizimi kullanabilir. Portalda, bir dizini açıkken, alan özniteliklerine kolay erişim için Search Gezgini ile birlikte dizin JSON tanımıyla yan yana çalışabilirsiniz. Sorguları test ederken hangi alanların aranabilir, sıralanabilir, filtrelenebilir ve facetable olduğunu kontrol edin.

REST istemcisi kullanma

Postman ve Visual Studio Code (Azure Bilişsel Arama uzantılı) sorgu istemcisi olarak işleve sahip olabilir. Her iki aracı kullanarak arama hizmetinize bağlanarak Arama Belgeleri (REST) istekleri gönderebilirsiniz. Çok sayıda öğretici ve örnek, dizin oluşturmanın sorgusunu yapmak için REST istemcilerini gösterir.

Her istemci hakkında bilgi edinmek için şu makalelerden birini kullanarak çalışmaya başlayabilirsiniz (her ikisi de sorgu yönergelerini içerir):

Her istek tek başınadır, bu nedenle her istekte uç nokta, dizin adı ve API sürümünü sağlayabilirsiniz. Content-Type ve API anahtarı gibi diğer özellikler istek üst bilgisinde geçirildi. Daha fazla bilgi için bkz. Sorgu isteklerini formüle etmeye ilişkin yardım için Belgeleri Arama (REST).

SDK kullanma

Bilişsel Arama için Azure SDK'ları genel kullanıma açık özellikler sunar. Bu nedenle, bir dizini sorgulamak için HERHANGI BIR SDK kullanabilirsiniz. Bunların hepsi, arama belgeleriyle dizin yüklemeden sorgu isteklerini formüleye kadar bir dizinle etkileşim kurmak için yöntemleri olan bir SearchClient sağlar.

Azure SDK İstemci Örnekler
.NET SearchClient DotNetHowTo
Java SearchClient SearchForDynamicDocumentsExample.java
JavaScript SearchClient Bekleyen.
Python SearchClient sample_simple_query.py

Sorgu türü seçin: basit | Tam

Sorgunuz tam metin araması ise, arama terimleri ve tümcecikler olarak geçirilen tüm metinleri işlemeye bir sorgu ayrıştırıcısı kullanılır. Azure Bilişsel Arama iki sorgu ayrıştırıcısı sunar.

  • Basit ayrıştırıcı, basit sorgu söz dizimlerini anlar. Bu ayrıştırıcı, serbest biçimli metin sorgularında hızı ve etkinliği için varsayılan olarak seçilmiştir. Söz dizimi, terim ve tümcecik aramaları için ortak arama işleçlerini (AND, OR, NOT) ve ön ek ( ) arama (Seattle ve * Seattle için "sea*" gibi) destekler. Öncelikle basit ayrıştırıcıyı denemeniz ve ardından uygulama gereksinimleri daha güçlü sorgular için çağrılıyorsa tam ayrıştırıcıya geçebilirsiniz.

  • İsteke eklerken etkinleştirilentam Lucene sorgu söz queryType=full dizimi, Apache Lucene Parser'i temel almaktadır.

Tam söz dizimi ve basit söz dizimi, aynı ön ek ve boole işlemlerini destekleyen ölçüde çakışır, ancak tam söz dizimi daha fazla işleç sağlar. Tam olarak, boole ifadeleri için daha fazla işleç ve belirsiz arama, joker karakter arama, yakınlık araması ve normal ifadeler gibi gelişmiş sorgular için daha fazla işleç vardır.

Sorgu yöntemlerini seçme

Arama temelde bir arama kutusundan veya bir sayfada tıklama olaylarından terimlerin veya tümceciklerin toplanmış olduğu kullanıcı odaklı bir alıştırmadır. Aşağıdaki tabloda, beklenen arama deneyimiyle birlikte kullanıcı girişini toplayan mekanizmalar özetlenmiştir.

Giriş Deneyim
Search yöntemi Kullanıcı, işleçleri olan veya olmayan terimleri veya tümcecikleri bir arama kutusuna yazın ve isteği göndermek için Ara'ya tıklayın. Arama aynı istekte filtrelerle kullanılabilir, ancak otomatik tamamlama veya önerilerle kullanılamaz.
Autocomplete yöntemi Bir kullanıcı birkaç karakter kullanır ve her yeni karakter yazıldığı zaman sorgular başlatılır. Yanıt, dizinden tamamlanmış bir dizedir. Sağlanan dize geçerli ise kullanıcı Ara'ya tıklar ve bu sorguyu hizmete gönderir.
Öneriler yöntemi Otomatik tamamlamada olduğu gibi, bir kullanıcı birkaç karakter kullanır ve artımlı sorgular oluşturulur. Yanıt, genellikle birkaç benzersiz veya açıklayıcı alanla temsil edilen, eşleşen belgelerin bir açılan listesidir. Seçimlerden herhangi biri geçerli ise, kullanıcı bir seçime tıklar ve eşleşen belge döndürülür.
Çok yönlü gezinme Bir sayfada, arama kapsamını daraltan tıklanabilir gezinti bağlantıları veya iş haritaları görüntülenir. Çok yönlü bir gezinti yapısı, ilk sorguyu temel alarak dinamik olarak oluşur. Örneğin, search=* olası her kategoriden oluşan çok yönlü bir gezinti ağacı doldurmak için. Bir sorgu yanıtını kullanarak çok yönlü bir gezinti yapısı oluşturulur, ancak aynı zamanda bir sonraki sorguyu ifade etmek için de bir mekanizmadır. n REST API, Bir Arama Belgeleri işlemi sorgu parametresi olarak belgelenmiş, ancak facets parametresi olmadan search kullanılabilir.
Filter yöntemi Filtreler, sonuçları daraltmak için facet'lerle birlikte kullanılır. Sayfanın arkasında, örneğin dile özgü alanlarla sayfayı başlatmak için bir filtre de gerçekleştirebilirsiniz. Bu REST API, Bir Arama Belgeleri işlemi sorgu parametresi olarak belgelenmiş, ancak $filter parametresi olmadan search kullanılabilir.

Alan özniteliklerinizi bilmek

Daha önce sorgu türlerinive bileşimini gözden geçirmeniz, sorgu isteğinde yer alan parametrelerin alanların dizinde nasıl özniteliklere bağlı olduğunu hatırlayabilirsiniz. Örneğin, bir sorgu, filtre veya sıralama düzeninde kullanılacak bir alanın aranabilir, filtrelenebilir ve sıralanabilir olması gerekir. Benzer şekilde, sonuçlarda yalnızca alınabilir olarak işaretlenmiş alanlar görünebilir. İsteğiniz içinde , ve parametrelerini belirtmeye başlarken beklenmeyen sonuçlarla karşılaşılmasından kaçınmak search filter için öznitelikleri kontrol orderby edin.

Portal ekran görüntüsünde, otellerörnek dizininin altındaki tek yan tümcesinde yalnızca son iki "LastRenovationDate" ve "Rating" "$orderby" alanı kullanılabilir.

Otel örneği için dizin tanımı

Alan özniteliklerinin açıklaması için bkz. Dizin Oluşturma (REST API).

Belirteçlerinizi öğrenin

Dizin oluşturma sırasında, arama motoru dizelerde metin analizi gerçekleştirmek için bir çözümleyici kullanır ve sorgu sırasında eşleşme potansiyelini en üst düzeye çıkarır. En azından, dizeler daha düşük düzeylerdir, ancak aynı zamanda bir yandan da daha fazla hareket edebilir ve Word kaldırma işlemini durdurabilir. Daha büyük dizeler veya bileşik sözcükler genellikle boşluk, kısa çizgi veya tire ile ayrılır ve ayrı belirteçler olarak dizinlenir.

Burada ele almanız gereken nokta, dizininizin neleri içerdiğini düşündüğünüzden farklı olabilir. Sorgular beklenen sonuçları döndürmezse, çözümleyici tarafından oluşturulan belirteçleri Çözümle metni (REST API)aracılığıyla inceleyebilirsiniz. Simgeleştirme ve sorgulara etkisi hakkında daha fazla bilgi için, bkz. kısmi terim arama ve özel karakterlerle desenler.

Sonraki adımlar

Sorgu isteklerinin nasıl çalıştığını daha iyi kavradığınıza göre, uygulamalı deneyim için aşağıdaki hızlı başlangıçlara ihtiyacınız vardır.