Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Note
Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.
Azure Yapay Zeka Arama'te sorgu oluştururken, özel sorgu formları için tam Lucene Sorgu Ayrıştırıcısı söz dizimini seçebilirsiniz: joker karakter, benzer arama, yakınlık araması, normal ifadeler. Azure Yapay Zeka Arama'te Lucene Sorgu Ayrıştırıcı söz diziminin çoğu olduğu gibi uygulanır, ancak aralık aramaları ifadeler aracılığıyla oluşturulur.
Tam Lucene söz dizimini kullanmak için queryType'ı full olarak ayarlayın ve joker karakter, belirsiz arama veya tam söz diziminin desteklediği diğer sorgu formlarından biri için bir sorgu ifadesi geçirin. REST'de sorgu ifadeleri, bir search isteğinin parametresinde sağlanır.
Örnek (tam söz dizimi)
Aşağıdaki örnek, tam söz dizimi kullanılarak yapılan bir arama isteğidir. Bu özel örnek, alanlı arama ve ifade ağırlıklandırmayı gösterir. Kategori alanının terimini budgetiçerdiği otelleri arar.
"recently renovated" ifadesini içeren belgeler ek artırma ağırlığı alır ve ifade artırma değeri (3) sonucunda daha üst sıralarda yer alabilir.
POST /indexes/hotels-sample/docs/search?api-version=2026-04-01
{
"queryType": "full",
"search": "category:budget AND \"recently renovated\"^3",
"searchMode": "all"
}
Herhangi bir sorgu türüne özgü olmasa da, searchMode parametresi bu örnekte geçerlidir. Operatörler sorguda bulunduğunda, tüm kriterlerin karşılandığından emin olmak için genellikle searchMode=all ayarlamanız gerekir.
Daha fazla örnek için bkz . Lucene sorgu söz dizimi örnekleri. sorgu talebi ve parametreleri, searchMode dahil olmak üzere, hakkında ayrıntılar için Belge Arama (REST API)'ne bakın.
Söz dizimi temelleri
Aşağıdaki söz dizimi temelleri Lucene söz dizimini kullanan tüm sorgular için geçerlidir.
Bağlamda operatör değerlendirmesi
Yerleştirme, bir simgenin bir işleç olarak mı yoksa bir dizedeki başka bir karakter olarak mı yorumleneceğini belirler.
Örneğin, Lucene tam söz diziminde tilde (~), hem benzer arama hem de yakınlık araması için kullanılır. Tırnak içine alınmış bir tümceciğin arkasına yerleştirildiğinde, ~ yakınlık araması çağırır. Bir terimin sonuna yerleştirildiğinde, ~ belirsiz aramayı çağırır.
gibi business~analystbir terim içinde karakter işleç olarak değerlendirilmez. Bu durumda, sorgunun bir terim veya tümcecik sorgusu olduğunu varsayarsak, sözcük temelli çözümleme ile tam metin araması öğesini çıkarır ~ ve terimi business~analyst iki olarak keser: business OR analyst.
Yukarıdaki örnek tilde ()~ şeklindedir, ancak her işleç için aynı ilke geçerlidir.
Özel karakterlerden kaçış
Arama işleçlerinden herhangi birini arama metninin bir parçası olarak kullanmak için karakterin önüne tek bir ters eğik çizgi (\ ) ekleyerek kaçış yapın. Örneğin, https:// üzerinde, sorgu dizesinin bir parçası olan :// ile joker karakter araması yapmak için search=https\:\/\/* öğesini belirtmeniz gerekir. Benzer şekilde, kaçış telefon numarası deseni şuna \+1 \(800\) 642\-7676benzer olabilir.
Kaçış gerektiren özel karakterler şunlardır:
+ - & | ! ( ) { } [ ] ^ " ~ * ? : \ /
Note
Kaçış belirteçleri bir arada tutsa da, dizin oluşturma sırasında sözcük çözümlemesi bunları ayırabilir. Örneğin, standart Lucene çözümleyicisi kısa çizgi, boşluk ve diğer karakterlerdeki sözcükleri böler. Sorgu dizesinde özel karakterlere ihtiyacınız varsa, bunları dizinde koruyan bir çözümleyiciye ihtiyacınız olabilir. Bazı seçenekler arasında hecelenmiş sözcükleri koruyan Microsoft doğal dil çözümleyicileri veya daha karmaşık desenler için özel bir çözümleyici bulunur. Daha fazla bilgi için bkz . Kısmi terimler, desenler ve özel karakterler.
URL'lerde güvenli olmayan ve ayrılmış karakterleri encode etme
Tüm güvenli olmayan ve ayrılmış karakterlerin url'de kodlandığından emin olun. Örneğin, # URL'de parça/yer işareti tanımlayıcısı olduğundan güvenli olmayan bir karakterdir. Karakter, URL'de kullanılıyorsa olarak kodlanmalıdır %23 .
& ve = Azure Yapay Zeka Arama'te parametreleri sınırlandıran ve değerleri belirten ayrılmış karakterlere örnektir. Daha fazla ayrıntı için bkz. RFC1738: Tekdüzen Kaynak Bulucuları (URL).
Güvenli olmayan karakterler " ` < > # % { } | \ ^ ~ [ ]. Ayrılmış karakterler şunlardır: ; / ? : @ = + &.
Boole işleçleri
Bir eşleşmenin duyarlığını geliştirmek için sorgu dizesine Boole işleçleri ekleyebilirsiniz. Tam söz dizimi, karakter işleçlerine ek olarak metin işleçlerini destekler. Her zaman tüm büyük harflerde metin boole işleçlerini (AND, OR, NOT) belirtin.
| Metin işleci | Character | Example | Usage |
|---|---|---|---|
| AND | + |
wifi AND luxury |
Eşleşmenin içermesi gereken terimleri belirtir. Örnekte sorgu altyapısı hem wifi, hem de luxury içeren belgeleri arar. Artı karakteri (+), bir terimi zorunlu kılmak amacıyla doğrudan terimin önünde kullanılabilir. Örneğin, +wifi +luxury her iki terimin de tek bir belgenin alanında bir yerde görünmesi gerektiğini bildirir. |
| OR | (yok) 1 | wifi OR luxury |
Terimlerden biri bulunduğunda bir eşleşme bulur. Örnekte sorgu altyapısı, wifi veya luxury ya da her ikisini birden içeren belgelerde eşleşmeler döndürür. ile searchMode=any, OR varsayılan bağlaç işlecidir, bu nedenle wifi luxury ile wifi OR luxuryeşdeğerdir. ile searchMode=allbu davranışı elde etmek için açık OR işlecini kullanın. |
| NOT |
!, - |
wifi –luxury |
Terimi dışlayan belgelerde bir uyum bulur. Örneğin, wifi –luxury terimine sahip olan ancak wifi terimine sahip olmayan belgeleri arar. |
1 Karakter | OR işlemleri için desteklenmez.
NOT Boole işleci
Important
NOT işleci (NOT, !veya -) tam söz diziminde basit söz diziminde olduğundan farklı davranır.
- Basit söz diziminde, olumsuzlama içeren sorgularda her zaman otomatik olarak bir joker karakter eklenir. Örneğin, sorgu
-luxuryotomatik olarak-luxury *genişletilir. - Tam söz diziminde, olumsuzlama içeren sorgular joker karakterle birleştirilemez. Örneğin, sorgulara
-luxury *izin verilmez. - Tam söz diziminde, tek bir olumsuzlama içeren sorgulara izin verilmez. Örneğin, sorguya
-luxuryizin verilmez. - Tam söz diziminde olumsuzlamalar, arama modundan bağımsız olarak sorguda her zaman AND'ler gibi davranır.
- Örneğin, tam söz dizimindeki tam söz dizimi sorgusu
wifi -luxuryyalnızca teriminiwifiiçeren belgeleri getirir ve ardından olumsuzlamayı-luxurybu belgelere uygular.
- Örneğin, tam söz dizimindeki tam söz dizimi sorgusu
- Dizindeki tüm belgeler üzerinde arama yapmak için olumsuzlamalar kullanmak istiyorsanız, arama moduyla
anybasit söz dizimi önerilir. - Dizindeki belgelerin bir alt kümesinde arama yapmak için olumsuzlamalar kullanmak istiyorsanız, tam söz dizimi veya tüm arama moduyla basit söz dizimi önerilir.
| Sorgu Türü | Arama Modu | Örnek Sorgu | Behavior |
|---|---|---|---|
| Simple | any | wifi -luxury |
Dizindeki tüm belgeleri döndürür. "Wifi" terimi veya "lüks" terimi eksik olan belgeler diğer belgelere göre daha yüksek sıralanır. Sorgu wifi OR -luxury OR * olarak genişletilir. |
| Simple | all | wifi -luxury |
Yalnızca dizinde "wifi" terimini içeren ve "lüks" terimini içermeyen belgeleri döndürür. Sorgu wifi AND -luxury AND * olarak genişletilir. |
| Full | any | wifi -luxury |
Yalnızca dizinde "wifi" terimini içeren belgeleri döndürür ve ardından "lüks" terimini içeren belgeler sonuçlardan kaldırılır. |
| Full | all | wifi -luxury |
Yalnızca dizinde "wifi" terimini içeren belgeleri döndürür ve ardından "lüks" terimini içeren belgeler sonuçlardan kaldırılır. |
Alanlı arama
Arama ifadesinin fieldName:searchExpression tek bir sözcük veya tümcecik olabileceği veya isteğe bağlı olarak Boole işleçleriyle parantez içinde daha karmaşık bir ifade olabileceği, söz dizimi ile alanlı bir arama işlemi tanımlayabilirsiniz. Bazı örnekler şunlardır:
genre:jazz NOT historyartists:("Miles Davis" "John Coltrane")
Her iki dizenin de tek bir varlık olarak değerlendirilmesini istiyorsanız, bu durumda alanda iki ayrı sanatçının aranmasını istiyorsanız, tırnak içine birden çok dize yerleştirdiğinizden artists emin olun.
içinde fieldName:searchExpression belirtilen alan bir searchable alan olmalıdır. Alan tanımlarında dizin özniteliklerinin nasıl kullanıldığı hakkında ayrıntılı bilgi için bkz . Dizin Oluşturma.
Note
Alanlı arama ifadelerini kullanırken, her alanlı arama ifadesinin searchFields açıkça belirtilen bir alan adı olduğundan parametresini kullanmanız gerekmez. Ancak, bazı bölümlerin belli bir alanla sınırlı olduğu ve geri kalanın birkaç alana uygulanabiliyorsa sorgu çalıştırmak istiyorsanız, searchFields parametresini kullanmaya devam edebilirsiniz. Örneğin, sorgu search=genre:jazz NOT history&searchFields=description yalnızca jazz alanıyla eşleşirken genre alanıyla, NOT history ise description alanıyla eşleşecektir.
fieldName:searchExpression içinde sağlanan alan adı her zaman searchFields parametresi üzerinde önceliklidir; bu nedenle bu örnekte genre parametresine searchFields eklememize gerek yoktur.
Bulanık arama
Benzer arama, benzer bir yapıya sahip olan terimlerdeki eşleşmeleri bulur ve bir terimi iki veya daha az mesafe ölçütünü karşılayan en fazla 50 terime kadar genişletir. Daha fazla bilgi için bkz. Bulanık arama.
Benzer bir arama yapmak için, tek bir sözcüğün sonundaki tilde ~ simgesini, düzenleme uzaklığı belirten 0 ile 2 (varsayılan) arasında bir sayı olan isteğe bağlı bir parametreyle kullanın. Örneğin, blue~ veya blue~1, blue ve blues döndürür glue.
Benzer arama yalnızca terimlere uygulanabilir, tırnak içine alınmış ifadeler için uygulanamaz. Ancak, çok parçalı bir isim veya ifade içinde tildeyi her terime tek tek ekleyebilirsiniz. Örneğin, Unviersty~ of~ Wshington~ ile University of Washingtoneşleşer.
Yakınlık araması
Yakınlık aramaları, belgede birbirine yakın terimleri bulmak için kullanılır. İfadenin sonuna bir tilde ~ simgesi ve ardından yakınlık sınırı olan sözcük sayısını ekleyin. Örneğin, "hotel airport"~5 bir belgedeki terimleri hotel ve airport birbirinin beş sözcüğü içinde bulur.
Terim yükseltme
Aramayı iki adım olarak düşünün. İlk olarak, Azure Yapay Zeka Arama eşleşen belgeleri bulur. Sonra, bu eşleşmeleri sıralar. Terim artırma yalnızca ikinci adımı etkiler: Sorgunuzun bir bölümüyle eşleşen belgeleri sonuçlarda daha yukarı taşıyabilir.
Terim artırma, puanlama profilinden farklıdır. Yükseltme, geçerli sorgudaki bir sözcüğü, tümceciği veya grubu tercih eder. Puanlama profili, dizinde tanımlanan kurallara göre alanları veya diğer dizin içeriğini tercih eder.
Kapsamı artırma
Sorguda öne çıkarmak istediğiniz bölümün hemen ardından bir şapka işareti (^) ve pozitif bir sayı yazın. Örneğin, tax^2, tax içeren belgeleri yalnızca yükseltilmemiş bir terimle eşleşen belgelerden daha üst sıralara taşıyabilir. Varsayılan artırma değeri 1'dir. Eşleşmeye daha az ağırlık vermek için 0 ile 1 0.2arasında bir değer de kullanabilirsiniz.
Noktalama işaretleri, her yönergenin hangi sözcükleri etkilediğini bildirir:
- Alan ön eki olarak adlandırılan, ardından iki nokta üst üste gelen bir alan adı; bir sözcükten, tırnak içindeki bir ifadeden veya parantez içindeki bir gruptan önce yer alır. Örneğin,
content:, Azure Yapay Zeka Arama'econtentalanına bakmasını söyler. -
^2gibi bir artırma, bir sözcükten, tırnak içindeki ifadeden veya parantez içindeki bir gruptan sonra görünür. Azure Yapay Zeka Arama'e eşleşmeleri sıralarken neye öncelik vereceğini söyler.
Aşağıdaki tabloda, sözcükler arasındaki boşluğun searchMode=any gibi çalıştığı varsayılan OR kullanılır.
| Query | Neler eşleşebilir? | Güçlendirme neyi destekler |
|---|---|---|
deferred tax^2 |
deferred, taxveya her ikisi de. |
Yalnızca sözcük tax. |
"deferred tax"^2 |
Sözcüklerin yan yana ve bu sırayla yer aldığı ifadenin tamamı. | Tam ifade. |
(deferred OR tax)^2 |
deferred, taxveya her ikisi de. |
Parantez içindeki her şey tek bir grup olarak. |
ile searchMode=all, sorgu deferred tax^2 her iki sözcüğün de eşleşmesini gerektirir. Güçlendirme hâlâ yalnızca tax için geçerlidir. Bunun yerine iki sözcüğü de eşleştirmek için yazın deferred OR tax^2.
İfadenin veya grubun tamamını vurgulamak istediğinizde, imleci kapanış tırnağından veya parantezinden sonra yerleştirin. Parantezler tümcecik oluşturmaz. Sözcüklerin yan yana ve belirli bir sırada olması gerektiğinde tırnak işaretlerini kullanın.
Yükseltme ve alanın kapsamı
Ardından iki nokta üst üste gelen bir alan adı, Azure Yapay Zeka Arama’in nerede arama yapacağını sınırlar. Yükseltme, Azure Yapay Zeka Arama eşleşmeyi sıralama şeklini değiştirir. Her ikisini de aynı sorguda kullanabilirsiniz.
| Query | Ne anlama gelir? |
|---|---|
content:deferred tax^2 |
Alan öneki yalnızca deferred için geçerlidir. Ayrı tax^2 bölümü, searchFields tarafından seçilen alanları veya searchFields belirtilmemişse aranabilir alanların tümünü kullanır. Bir tax eşleşme ekstra derecelendirme ağırlığı alır. |
content:"deferred tax"^2 |
Tam ifadeyi yalnızca content içinde arayın ve bu ifade eşleşmesine ek sıralama ağırlığı verin. |
content:(deferred OR tax)^2 |
Yalnızca content içinde iki sözcükten herhangi birini arayın ve gruplanmış eşleşmeye ek sıralama ağırlığı verin. |
Örneğin, searchFields, title olarak ayarlanırsa, ilk sorgu deferred içinde content ve tax içinde title arar. Diğer sorgulardaki tırnak işaretleri ve parantezler, her iki kelimeyi de content içinde tutar.
Important
İki nokta ve düzeltme işareti (^) zıt yönlerde çalışır. Alan ön eki content: , ondan sonraki sorgu bölümüne uygulanır. Yükseltme ^2 , ondan önceki sorgu bölümü için geçerlidir. Bu bölümün birden fazla sözcük içermesini sağlamak için tırnak işaretlerini veya parantezleri kullanın. Daha fazla bilgi için bkz. Alanlı arama ve Öncelik (gruplandırma).
Çözümleyicinin artırılmış sorgular üzerindeki etkisi
Normal sözcükler, tümcecikler ve sözcük grupları için artırma, metin analizini atlamaz. Eşleştirmeden önce, Azure Yapay Zeka Arama sorgu metnini her alanın çözümleyicisiyle işlemeye devam eder. Sonuç olarak, aynı artırılmış metin farklı çözümleyiciler kullanan alanlarda farklı şekilde eşleşebilir.
Alan ön eki olan bir tümcecik veya grup bu alanın çözümleyicisini kullanır. Alan ön eki olmayan metin, aranmakta olan her alan için çözümleyiciyi kullanır. Örneğin, metni küçük harfe dönüştüren bir analizör, "DEFERRED TAX"^2 ifadesini küçük harfli dizinlenmiş terimlerle eşleştirebilir.
Joker karakter, normal ifade ve benzer sorgular gibi diğer sorgu formları farklı analiz kuralları kullanır. Bir güçlendirme eklemek bu kuralları değiştirmez. Daha fazla bilgi için bkz . 2. Aşama: Sözcük analizi.
Normal ifade araması
Normal ifade araması, RegExp sınıfında belgelendiği gibi Apache Lucene altında geçerli olan desenleri temel alan bir eşleşme bulur.
Azure Yapay Zeka Arama'te normal ifade şöyledir:
- Eğik çizgiler arasına alınmış
/ - Yalnızca küçük harf
Örneğin, motel veya hotel içeren belgeleri bulmak için /[mh]otel/ belirtin. Normal ifade aramaları tek sözcüklerle eşleştirilir.
Bazı araçlar ve diller, Azure Yapay Zeka Arama tarafından uygulanan kaçış kurallarının ötesinde fazladan kaçış karakteri gereksinimleri uygular. JSON için, eğik çizgi içeren dizeler ters eğik çizgiyle kaçıştırılır: microsoft.com/azure/ ifadenin normal ifadeyi ayarladığı yer olur search=/.*microsoft.com\/azure\/.*/, ve search=/.* <string-placeholder>.*/ içinde kaçış yapılmış eğik çizgi bulunan dizedir.
Regex sorgularında iki yaygın simge . ve *'dir. A . herhangi bir karakterle, bir * ise önceki karakterle sıfır veya daha fazla kez eşleşir. Örneğin, /be./ terimleri bee ve bet ile eşleşirken, /be*/, be, bee ve beee ile eşleşir, ancak bet ile eşleşmez. Birlikte, .*; /be.*/ kullanarak, herhangi bir karakter dizisini eşleştirmenize olanak tanır, böylece be ile başlayan ve better gibi terimlerle eşleşebilir.
Normal ifadenizde söz dizimi hataları alırsanız, özel karakterler için kaçış kurallarını gözden geçirin. Sorunun aracina özgü olup olmadığını doğrulamak için farklı bir istemci de deneyebilirsiniz.
Joker karakter arama
Birden çok (*) veya tek (?) karakterli joker karakter aramaları için genel olarak kabul edilen söz dizimini kullanabilirsiniz. Tam Lucene söz dizimi, ön ek ve iç sözcük eşleştirmeyi destekler. Sonek eşleştirmesi için normal ifade söz dizimini kullanın.
Lucene sorgu ayrıştırıcısının bu simgelerin bir tümcecikle değil tek bir terimle kullanılmasını desteklediğini unutmayın.
| Düzeltme türü | Açıklama ve örnekler |
|---|---|
| prefix | Terim parçası * veya ?'den önce gelir. Örneğin, bir sorgu ifadesi search=alpha* ifadesinin alphanumeric veya alphabetical döndürebileceğini belirtir. Ön ek eşleştirme hem basit hem de tam söz diziminde desteklenir. |
| suffix | Term parçası, * veya ? sonrasında gelir ve yapıyı sınırlandırmak için eğik çizgiyle kesilir. Örneğin, search=/.*numeric/ döndürür alphanumeric. |
| infix | **
Terim parçaları * veya ? içine alır. Örneğin, search=non*al, non-numerical ve nonsensical döndürür. |
İşleçleri tek bir ifadede birleştirebilirsiniz. Örneğin, 980?2*98072-1222 ve 98052-1234 ile eşleşir, burada ? tek bir (gerekli) karakterle eşleşirken, * izleyen rastgele uzunluktaki karakterlerle eşleşir.
Sonek eşleştirme için normal ifade eğik çizgi / sınırlayıcıları gerekir. Genel olarak, * olmadan ? veya / simgesini terimin ilk karakteri olarak kullanamazsınız. Belirtmek de önemlidir ki regex sorgularının dışında kullanıldığında * farklı davranır. regex eğik çizgi / sınırlayıcısının dışında, * joker karakterdir ve regex'te .* gibi herhangi bir karakter serisiyle eşleşir. Örneğin, search=/non.*al/ ile search=non*alaynı sonuç kümesini üretir.
Note
Kural olarak, desen eşleştirme yavaş olduğundan, terimdeki karakter dizileri için belirteçler oluşturan kenar n-gram belirteci gibi alternatif yöntemleri keşfetmek isteyebilirsiniz. N-gram belirteci ile dizin daha büyük olur, ancak desen yapısına ve dizine aldığınız dizelerin uzunluğuna bağlı olarak sorgular daha hızlı yürütülebilir. Daha fazla bilgi için bkz. Kısmi terim araması ve özel karakterler içeren desenler.
Çözümleyicinin joker karakter sorguları üzerindeki etkisi
Sorgu ayrıştırma sırasında ön ek, sonek, joker karakter veya normal ifade olarak formüle edilen sorgular, sözcük temelli çözümleme atlayarak sorgu ağacına olduğu gibi geçirilir. Eşleşmeler yalnızca dizin sorgunuzun belirttiği biçimde dizeleri içeriyorsa bulunur. Çoğu durumda, dizin oluşturma sırasında kısmi terim ve desen eşleştirmenin başarılı olması için dize bütünlüğünü koruyan bir çözümleyiciye ihtiyacınız vardır. Daha fazla bilgi için bkz . Azure Yapay Zeka Arama sorgularında kısmi terim araması.
Arama sorgusunun terminal* , terminateve terminationgibi terminatesterimler içeren sonuçları döndürmesini isteyebileceğiniz bir durum düşünün.
En.lucene (english Lucene) çözümleyicisini kullanırsanız, her terimin agresif kökenlendirmesi uygulanır. Örneğin, terminate, termination, terminates, dizininizdeki termi belirtecine indirgenecektir. Diğer taraftan, joker karakter veya benzer arama kullanan sorgulardaki terimler hiç analiz edilmediğinden sorguyla terminat* eşleşen hiçbir sonuç olmaz.
Diğer taraftan, Microsoft çözümleyicileri (bu örnekte en.microsoft çözümleyicisi) biraz daha gelişmiştir ve kök oluşturma yerine lematizasyon kullanır. Bu, oluşturulan tüm belirteçlerin geçerli İngilizce sözcükler olması gerektiği anlamına gelir. Örneğin, terminate, terminates ve termination çoğunlukla dizinde büyük ölçüde bütün olarak kalır ve joker karakterlere ve bulanık aramalara çok bağlı senaryolar için tercih edilebilir.
Note
Joker, ön ek ve regex sorgu terimleri, dizindeki birebir belirteçlerle eşleşir. Çoğu çözümleyici dizinlenen içeriği küçük harfe dönüştürdüğünden, Contoso* gibi büyük harfli bir terim, contoso gibi bir belirteçle eşleşmeyebilir. Uygulamanızda bu sorgu terimlerini, alana atanan çözümleyicinin büyük/küçük harf katlama davranışına göre küçük harfle yazın.
Joker karakter ve regex sorgularını puanlama
Azure Yapay Zeka Arama, metin sorguları için sıklık tabanlı puanlama (BM25) kullanır. Ancak, terimlerin kapsamının geniş olabileceği joker karakter ve regex sorguları için sıklık faktörü, sıralamanın nadir terimlerden gelen eşleşmelere sapmasını önlemek için yoksayılır. Joker karakter ve regex aramaları için tüm eşleşmeler eşit olarak değerlendirilir.
Özel karakterler
Bazı durumlarda, '' emojisi veya '❤€' işareti gibi özel bir karakter aramak isteyebilirsiniz. Böyle durumlarda, kullandığınız çözümleyicinin bu karakterleri filtrelemediğinden emin olun. Standart çözümleyici birçok özel karakteri atlar ve bunları dizininizden dışlar.
Özel karakterleri belirteci oluşturan çözümleyiciler, boşluklarla ayrılmış karakter dizilerini belirteç olarak dikkate alan boşluk çözümleyicisini ❤ içerir (bu nedenle dize bir belirteç olarak kabul edilir). Ayrıca, Microsoft İngilizce çözümleyicisi ("en.microsoft") gibi bir dil çözümleyicisi "€" dizesini belirteç olarak alır. Belirli bir sorgu için hangi belirteçleri ürettiğini görmek için bir çözümleyiciyi test edebilirsiniz.
Unicode karakterleri kullanırken, sorgu URL'sinde simgelerin düzgün bir şekilde kodlandığından emin olun (örneğin, ❤ için %E2%9D%A4+ kodlama dizisi kullanılır). Bazı REST istemcileri bu çeviriyi otomatik olarak yapar.
Öncelik (gruplandırma)
Sorgunun hangi bölümlerinin birlikte değerlendirileceklerini denetlemek için parantezleri kullanın. Örneğin, motel AND (wifi OR luxury), motel yanı sıra parantez içindeki terimlerden en az birini gerektirir: wifi veya luxury.
Bir alanın tamamında arama yapmak için ayraçlı grubun önüne bir alan ön eki yerleştirin. Örneğin, hotelAmenities:(wifi OR pool), wifi alanında yalnızca pool veya hotelAmenities arar.
Parantezler, AND ile OR’in nasıl birlikte çalıştığını denetler. Sözcüklerin yan yana veya belirli bir sırada görünmesini gerektirmezler. Bu davranış için tırnak işareti kullanın. Bir grubu yükseltmek için imleci, hotelAmenities:(wifi OR pool)^2 örneğindeki gibi, kapatma parantezinden sonra yerleştirin. Daha fazla bilgi için bkz . Kapsamı artırma.
Sorgu boyutu sınırları
Azure Yapay Zeka Arama, ilişkisiz sorgular arama hizmetinizin istikrarını bozabileceğinden sorgu boyutuna ve oluşturmaya sınırlar uygular. Sorgu boyutu ve oluşturma (yan tümce sayısı) ile ilgili sınırlar vardır. Ayrıca, ön ek aramasının uzunluğu ve regex araması ile joker karakter aramasının karmaşıklığı için sınırlar vardır. Uygulamanız program aracılığıyla arama sorguları oluşturuyorsa, bunu ilişkisiz boyutta sorgular oluşturmayabilecek şekilde tasarlamanızı öneririz.
Sorgu sınırları hakkında daha fazla bilgi için bkz . API isteği sınırları.