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.
Azure Yapay Zeka Arama'te OData tam metin arama işlevleri -
Not
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, OData filtre ifadeleri bağlamında search.ismatch ve search.ismatchscoring işlevleri aracılığıyla tam metin aramayı destekler. Bu işlevler, tam metin aramasını katı Boole filtrelemesi ile yalnızca search en üst düzey parametresini kullanarak mümkün olmayan yollarla birleştirmenizi sağlar.
Not
search.ismatch ve search.ismatchscoring işlevleri yalnızca Arama API'sindeki filtrelerde desteklenir.
Bunlar Öneri veya Otomatik Tamamlama API'lerinde desteklenmez.
Sözdizimi
Aşağıdaki EBNF (Genişletilmiş Backus-Naur Formu) ve search.ismatch işlevlerinin search.ismatchscoring dil bilgisini tanımlar:
search_is_match_call ::=
'search.ismatch'('scoring')?'(' search_is_match_parameters ')'
search_is_match_parameters ::=
string_literal(',' string_literal(',' query_type ',' search_mode)?)?
query_type ::= "'full'" | "'simple'"
search_mode ::= "'any'" | "'all'"
Etkileşimli söz dizimi diyagramı da kullanılabilir:
Not
Azure Yapay Zeka Arama için OData ifade söz dizimi başvurusu olan EBNF'nin tamamına bakın.
search.ismatch
İşlev, search.ismatch filtre ifadesinin bir parçası olarak tam metin arama sorgusunu değerlendirir. Eşleşen belgeler sonuç kümesinde döndürülür. Bu işlevin aşağıdaki aşırı yüklemeleri kullanılabilir:
search.ismatch(search)search.ismatch(search, searchFields)search.ismatch(search, searchFields, queryType, searchMode)
Parametreler aşağıdaki tabloda tanımlanmıştır:
| Parametre adı | Type | Açıklama |
|---|---|---|
search |
Edm.String |
Arama sorgusu (basit veya tam Lucene sorgu söz diziminde). |
searchFields |
Edm.String |
Aranabilir alanların virgülle ayrılmış listesi; varsayılan olarak dizindeki tüm aranabilir alanları kullanır. parametresinde search kullandığınızda, Lucene sorgusundaki alan tanımlayıcıları bu parametrede belirtilen tüm alanları geçersiz kılar. |
queryType |
Edm.String |
'simple' veya 'full'; varsayılan olarak 'simple'. parametresinde hangi sorgu dilinin search kullanıldığını belirtir. |
searchMode |
Edm.String |
'any' veya 'all', varsayılan olarak olarak 'any'gösterilir. Belgeyi eşleşme olarak saymak için parametredeki search arama terimlerinden herhangi birinin veya tümünün eşleşmesi gerekip gerekmediğini gösterir. Parametresinde search kullandığınızda, bunlar bu parametreden önceliklidir. |
Yukarıdaki parametrelerin tümü, Arama API'sindeki ilgili arama isteği parametrelerine eşdeğerdir.
search.ismatch işlevi, Boole mantıksal işleçlerini kullanarak diğer filtre alt ifadeleriyle birleştirmenize olanak tanıyan Edm.Boolean türünde bir değer döndürür.
Not
Azure Yapay Zeka Arama, search.ismatch veya search.ismatchscoring'ın lambda ifadelerinin içinde kullanılmasını desteklemez. Bu, tam metin arama eşleşmelerini aynı nesnedeki katı filtre eşleşmeleriyle ilişkilendirebilen nesne koleksiyonları üzerine filtre yazmanın mümkün olmadığı anlamına gelir. Bu sınırlama hakkında daha fazla bilgi ve örnekler için bkz. Azure Yapay Zeka Arama'te koleksiyon filtrelerinde sorun giderme. Bu sınırlamanın neden mevcut olduğu hakkında daha ayrıntılı bilgi için bkz . Azure Yapay Zeka Arama'te koleksiyon filtrelerini anlama.
search.ismatchscoring
search.ismatchscoring işlevi, search.ismatch işlevi gibi, parametre olarak geçirilen tam metin arama sorgusuyla eşleşen belgeler için true döndürür. Aralarındaki fark, sorguyla eşleşen search.ismatchscoring belgelerin ilgi puanının genel belge puanına katkıda bulunmaları iken, search.ismatch için belge puanının değişmemesidir. Bu işlevin aşağıdaki yüklemeleri, search.ismatch ile özdeş parametrelerle kullanılabilir.
search.ismatchscoring(search)search.ismatchscoring(search, searchFields)search.ismatchscoring(search, searchFields, queryType, searchMode)
search.ismatch Hem hem de search.ismatchscoring işlevleri aynı filtre ifadesinde kullanılabilir.
Örnekler
"Waterfront" sözcüğünü içeren belgeleri bulun. Bu filtre sorgusu, arama isteği ile aynıdır search=waterfront.
search.ismatchscoring('waterfront')
Azure portalındaki Arama Gezgini'nde çalıştırabileceğiniz bu isteğin tam sorgu söz dizimi aşağıdadır. Çıkış, sahil, su ve cephe üzerindeki eşleşmelerden oluşur.
{
"search": "*",
"select": "HotelId, HotelName, Description",
"searchMode": "all",
"queryType": "simple",
"count": true,
"filter": "search.ismatchscoring('waterfront')"
}
"havuz" sözcüğü ve derecelendirme değeri 4'e eşit veya daha büyük olan veya "motel" sözcüğüyle 3,2'ye eşit olan belgeleri bulun. Bu isteğin işlev olmadan search.ismatchscoring ifade edilemeyeceğini unutmayın.
search.ismatchscoring('pool') and Rating ge 4 or search.ismatchscoring('motel') and Rating eq 3.2
Arama Gezgini için bu isteğin tam sorgu söz dizimi aşağıdadır. Çıkış, derecelendirmesi 4'ten büyük olan otellerde veya derecelendirmesi 3,2'ye eşit olan motellerde eşleşmelerden oluşur.
{
"search": "*",
"select": "HotelId, HotelName, Description, Tags, Rating",
"searchMode": "all",
"queryType": "simple",
"count": true,
"filter": "search.ismatchscoring('pool') and Rating ge 4 or search.ismatchscoring('motel') and Rating eq 3.2"
}
"Lüks" sözcüğü olmadan belgeleri bulun.
not search.ismatch('luxury')
Bu isteğin tam sorgu söz dizimi aşağıdadır. Çıktı, "lüks" terimiyle eşleşen sonuçlardan oluşur.
{
"search": "*",
"select": "HotelId, HotelName, Description, Tags, Rating",
"searchMode": "all",
"queryType": "simple",
"count": true,
"filter": "not search.ismatch('luxury')"
}
"Okyanus" tümceciği veya derecelendirme değeri 3,2'ye eşit olan belgeleri bulun. Sorgu yalnızca search.ismatchscoring ve HotelName alanlarına Description karşı yürütülür.
Bu isteğin tam sorgu söz dizimi aşağıdadır. Ayrıştırma işleminin yalnızca ikinci yan tümcesiyle eşleşen belgeler de döndürülür (özellikle, otellerin Rating'sinin 3.2'ye eşit olduğu durumlarda). Bu belgelerin ifadenin puanlanan bölümlerinden hiçbiriyle eşleşmediğini açıkça belirtebilmek için sıfıra eşit puanla döndürülürler.
{
"search": "*",
"select": "HotelId, HotelName, Description, Rating",
"searchMode": "all",
"queryType": "full",
"count": true,
"filter": "search.ismatchscoring('ocean', 'Description,HotelName') or Rating eq 3.2"
}
Çıktı 4 eşleşmeden oluşur: Açıklama veya Otel Adı'nda "okyanus"dan bahseden oteller veya 3.2 derecelendirmesine sahip oteller. İkinci yan tümcedeki eşleşmeler için sıfır arama puanına dikkat edin.
{
"@odata.count": 4,
"value": [
{
"@search.score": 1.6076145,
"HotelId": "18",
"HotelName": "Ocean Water Resort & Spa",
"Description": "New Luxury Hotel for the vacation of a lifetime. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
"Rating": 4.2
},
{
"@search.score": 1.0594962,
"HotelId": "41",
"HotelName": "Windy Ocean Motel",
"Description": "Oceanfront hotel overlooking the beach features rooms with a private balcony and 2 indoor and outdoor pools. Inspired by the natural beauty of the island, each room includes an original painting of local scenes by the owner. Rooms include a mini fridge, Keurig coffee maker, and flatscreen TV. Various shops and art entertainment are on the boardwalk, just steps away.",
"Rating": 3.5
},
{
"@search.score": 0,
"HotelId": "40",
"HotelName": "Trails End Motel",
"Description": "Only 8 miles from Downtown. On-site bar/restaurant, Free hot breakfast buffet, Free wireless internet, All non-smoking hotel. Only 15 miles from airport.",
"Rating": 3.2
},
{
"@search.score": 0,
"HotelId": "26",
"HotelName": "Planetary Plaza & Suites",
"Description": "Extend Your Stay. Affordable home away from home, with amenities like free Wi-Fi, full kitchen, and convenient laundry service.",
"Rating": 3.2
}
]
}
Otelin açıklamasında "otel" ve "havaalanı" terimlerinin birbirinden 5 kelimenin içinde olduğu ve en azından bazı odalarda sigara içilmeyen belgeleri bulun.
search.ismatch('"hotel airport"~5', 'Description', 'full', 'any') and Rooms/any(room: not room/SmokingAllowed)
Tam sorgu söz dizimi aşağıdadır. Arama Gezgini'nde çalıştırmak için, ters eğik çizgi karakteriyle iç tırnak işaretlerinden kaçın.
{
"search": "*",
"select": "HotelId, HotelName, Description, Tags, Rating",
"searchMode": "all",
"queryType": "simple",
"count": true,
"filter": "search.ismatch('\"hotel airport\"~5', 'Description', 'full', 'any') and Rooms/any(room: not room/SmokingAllowed)"
}
Çıktı, "otel" ve "havaalanı" terimlerinin 5 sözcük mesafe içinde olduğu tek bir belgeden oluşur. Bu arama sonucundaki oda dahil olmak üzere çoğu oteldeki birkaç odada sigara içilebilir.
{
"@odata.count": 1,
"value": [
{
"@search.score": 1,
"HotelId": "40",
"HotelName": "Trails End Motel",
"Description": "Only 8 miles from Downtown. On-site bar/restaurant, Free hot breakfast buffet, Free wireless internet, All non-smoking hotel. Only 15 miles from airport.",
"Tags": [
"bar",
"free wifi",
"restaurant"
],
"Rating": 3.2
}
]
}
Açıklama alanında "lüks" harfleriyle başlayan sözcük içeren belgeleri bulun. Bu sorgu, ön ek araması ile birlikte search.ismatch kullanır.
search.ismatch('lux*', 'Description')
İşte tam sorgu:
{
"search": "*",
"select": "HotelId, HotelName, Description, Tags, Rating",
"searchMode": "all",
"queryType": "simple",
"count": true,
"filter": "search.ismatch('lux*', 'Description')"
}
Çıktı aşağıdaki eşleşmelerden oluşur.
{
"@odata.count": 4,
"value": [
{
"@search.score": 1,
"HotelId": "18",
"HotelName": "Ocean Water Resort & Spa",
"Description": "New Luxury Hotel for the vacation of a lifetime. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
"Tags": [
"view",
"pool",
"restaurant"
],
"Rating": 4.2
},
{
"@search.score": 1,
"HotelId": "13",
"HotelName": "Luxury Lion Resort",
"Description": "Unmatched Luxury. Visit our downtown hotel to indulge in luxury accommodations. Moments from the stadium and transportation hubs, we feature the best in convenience and comfort.",
"Tags": [
"bar",
"concierge",
"restaurant"
],
"Rating": 4.1
},
{
"@search.score": 1,
"HotelId": "16",
"HotelName": "Double Sanctuary Resort",
"Description": "5 star Luxury Hotel - Biggest Rooms in the city. #1 Hotel in the area listed by Traveler magazine. Free WiFi, Flexible check in/out, Fitness Center & espresso in room.",
"Tags": [
"view",
"pool",
"restaurant",
"bar",
"continental breakfast"
],
"Rating": 4.2
},
{
"@search.score": 1,
"HotelId": "14",
"HotelName": "Twin Vortex Hotel",
"Description": "New experience in the making. Be the first to experience the luxury of the Twin Vortex. Reserve one of our newly-renovated guest rooms today.",
"Tags": [
"bar",
"restaurant",
"concierge"
],
"Rating": 4.4
}
]
}