Basit sorgu söz dizimi - Azure Cognitive Search | Microsoft Docs
Azure Bilişsel Arama iki adet Lucene tabanlı sorgu dili uygular: basit sorgu ayrıştırıcısı ve Lucene sorgu ayrıştırıcısı.Azure Cognitive Search implements two Lucene-based query languages: Simple Query Parser and the Lucene Query Parser. Azure Bilişsel Arama 'de basit sorgu söz dizimi, benzer/slop seçeneklerini dışlar.In Azure Cognitive Search, the simple query syntax excludes the fuzzy/slop options.
Azure Bilişsel Arama, daha karmaşık sorgular için alternatif bir Lucene sorgu söz dizimi sağlar.Azure Cognitive Search provides an alternative Lucene Query Syntax for more complex queries. Her bir sözdiziminin sorgu ayrıştırma mimarisi ve avantajları hakkında daha fazla bilgi edinmek için bkz. tam metin aramasının Azure bilişsel arama nasıl çalıştığı.To learn more about query parsing architecture and benefits of each syntax, see How full text search works in Azure Cognitive Search.
Basit ayrıştırma çağırmaHow to invoke simple parsing
Basit sözdizimi varsayılandır.Simple syntax is the default. Çağırma yalnızca sözdizimini tam değerinden basit olarak sıfırlarsanız gereklidir.Invocation is only necessary if you are resetting the syntax from full to simple. Sözdizimini açıkça ayarlamak için queryType Search parametresini kullanın.To explicitly set the syntax, use the queryType search parameter. Geçerli değerler, varsayılan olarak simple ve Lucene için full simple|fulliçerir.Valid values include simple|full, with simple as the default, and full for Lucene.
Sorgu davranışı bozukluklarıQuery behavior anomalies
Bir veya daha fazla terim içeren herhangi bir metin, sorgu yürütmesi için geçerli bir başlangıç noktası olarak kabul edilir.Any text with one or more terms is considered a valid starting point for query execution. Azure Bilişsel Arama, metnin çözümlenmesi sırasında bulunan tüm Çeşitlemeler dahil olmak üzere, koşulların herhangi birini veya tümünü içeren belgelerle eşleşir.Azure Cognitive Search will match documents containing any or all of the terms, including any variations found during analysis of the text.
Bu seslerin yanı sıra, Azure Bilişsel Arama sorgu yürütmesinin bir yönü vardır. Bu işlem, giriş dizesine daha fazla terim ve işleç eklendikçe, arama sonuçlarını azaltmak yerine artan sonuçlara neden olabilir .As straightforward as this sounds, there is one aspect of query execution in Azure Cognitive Search that might produce unexpected results, increasing rather than decreasing search results as more terms and operators are added to the input string. Bu genişletmenin gerçekten gerçekleşmediği, bir NOT işlecinin eklenmesine bağlıdır, AND veya OR davranışları açısından nasıl yorumlanmadığını belirleyen bir searchMode parametresi ayarıyla birleştirilir.Whether this expansion actually occurs depends on the inclusion of a NOT operator, combined with a searchMode parameter setting that determines how NOT is interpreted in terms of AND or OR behaviors. Varsayılan, searchMode=Anyve NOT işleci verildiğinde, işlem bir veya eylem olarak hesaplanır; Örneğin, "New York" NOT Seattle Seattle olmayan tüm şehirleri döndürür.Given the default, searchMode=Any, and a NOT operator, the operation is computed as an OR action, such that "New York" NOT Seattle returns all cities that are not Seattle.
Genellikle, kullanıcıların daha fazla yerleşik gezinti yapılarına sahip olan e-ticaret sitelerinin aksine, içerik üzerinde arama yapan uygulamalar için Kullanıcı etkileşimi desenlerinde bu davranışları görmeniz daha olasıdır.Typically, you're more likely to see these behaviors in user interaction patterns for applications that search over content, where users are more likely to include an operator in a query, as opposed to e-commerce sites that have more built-in navigation structures. Daha fazla bilgi için, bkz. işleç.For more information, see NOT operator.
Boole işleçleri (ve, veya DEĞIL)Boolean operators (AND, OR, NOT)
Eşleşen belgelerin bulunduğu bir dizi zengin ölçüt kümesi oluşturmak için işleçleri bir sorgu dizesine ekleyebilirsiniz.You can embed operators in a query string to build a rich set of criteria against which matching documents are found.
AND işleci +AND operator +
AND işleci bir artı işareti.The AND operator is a plus sign. Örneğin, wifi+luxury hem wifi hem de luxuryiçeren belgeler için arama yapılır.For example, wifi+luxury will search for documents containing both wifi and luxury.
OR işleci |OR operator |
OR işleci dikey bir çubuk veya boru karakterdir.The OR operator is a vertical bar or pipe character. Örneğin, wifi | luxury wifi veya luxury ya da her ikisini de içeren belgeleri arayacak.For example, wifi | luxury will search for documents containing either wifi or luxury or both.
İşleç - DEĞILNOT operator -
NOT işleci eksi işareti.The NOT operator is a minus sign. Örneğin, wifi –luxury wifi terimi olan ve/veya luxury olmayan (ve/veya searchModetarafından denetlenen) belgeleri arar.For example, wifi –luxury will search for documents that have the wifi term and/or do not have luxury (and/or is controlled by searchMode).
searchMode seçeneği, NOT işleci olan bir terimin bir + veya | işleci yokluğunda, sorgudaki diğer koşullara göre mi yoksa ORed mi olduğunu denetler.The searchMode option controls whether a term with the NOT operator is ANDed or ORed with the other terms in the query in the absence of a + or | operator. searchMode any (varsayılan) veya allolarak ayarlan, hatırlayın.Recall that searchMode can be set to either any (default) or all. anykullanıyorsanız, daha fazla sonuç ekleyerek sorguların geri çağrılması artar ve varsayılan olarak - "veya NOT" olarak yorumlanır.If you use any, it will increase the recall of queries by including more results, and by default - will be interpreted as "OR NOT". Örneğin, wifi -luxury wifi terimi veya luxuryterimi içermeyen belgelerle eşleşir.For example, wifi -luxury will match documents that either contain the term wifi or those that do not contain the term luxury. allkullanırsanız, daha az sonuç ekleyerek sorguların duyarlığını artırır ve varsayılan olarak "ve NOT" olarak yorumlanır.If you use all, it will increase the precision of queries by including fewer results, and by default - will be interpreted as "AND NOT". Örneğin, wifi -luxury wifi terimi içeren belgelerle eşleşir ve "merkezlerini" terimini içermez.For example, wifi -luxury will match documents that contain the term wifi and do not contain the term "luxury". Bu, - işleci için daha sezgisel bir davranıştır.This is arguably a more intuitive behavior for the - operator. Bu nedenle, aramaları geri çağırmak yerine duyarlık için iyileştirmek istiyorsanız searchMode=any yerine searchMode=all kullanmayı düşünmelisiniz ve kullanıcılarınız aramalardaki - işlecini kullanır.Therefore, you should consider using searchMode=all instead of searchMode=any if You want to optimize searches for precision instead of recall, and Your users frequently use the - operator in searches.
Sonek işleciSuffix operator
Sonek işleci bir yıldız *.The suffix operator is an asterisk *. Örneğin, lux*, luxile başlayan, büyük/küçük harf yok sayılarak bir terim içeren belgeler için arama yapılır.For example, lux* will search for documents that have a term that starts with lux, ignoring case.
Tümcecik arama işleciPhrase search operator
Tümcecik işleci, tırnak işaretleri " "bir tümceciği barındırır.The phrase operator encloses a phrase in quotation marks " ". Örneğin, Roach Motel (tırnak işareti olmadan) herhangi bir sırada Roach ve/veya Motel içeren belgeleri aradığında, "Roach Motel" (tırnak işaretleriyle) yalnızca bu tümceciği içeren belgelerle ve bu sırayla eşleşir (metin analizi devam ediyor geçerlidir).For example, while Roach Motel (without quotes) would search for documents containing Roach and/or Motel anywhere in any order, "Roach Motel" (with quotes) will only match documents that contain that whole phrase together and in that order (text analysis still applies).
Öncelik operatörüPrecedence operator
Öncelik işleci, dizeyi parantez ( )içine alır.The precedence operator encloses the string in parentheses ( ). Örneğin motel+(wifi | luxury), Motel dönemi ve wifi veya luxury (ya da her ikisi) içeren belgeleri arayacak.For example, motel+(wifi | luxury) will search for documents containing the motel term and either wifi or luxury (or both).
Kaçış arama işleçleriEscaping search operators
Yukarıdaki sembolleri, arama metninin gerçek parçası olarak kullanmak için, bir ters eğik çizgiyle önek olarak önüne alınmalıdır.In order to use the above symbols as actual part of the search text, they should be escaped by prefixing them with a backslash. Örneğin, luxury\+hotel luxury+hotelterimi sonucunu elde eder.For example, luxury\+hotel will result in the term luxury+hotel. Daha tipik durumlarda bu kurala göre basit hale getirmek için, bu kuralın kaçışın gerekli olmadığı iki özel durum vardır:In order to make things simple for the more typical cases, there are two exceptions to this rule where escaping is not needed:
NOT işleci -, bir dönemin ortasında değil, boşluktan sonra gelen ilk karakter olması durumunda yalnızca kaçışlı olması gerekir.The NOT operator - only needs to be escaped if it's the first character after whitespace, not if it's in the middle of a term. Örneğin, wi-fi tek bir terimdir; Yani, GUID 'Ler (3352CDD0-EF30-4A2E-A512-3B30AF40F3FDgibi) tek bir belirteç olarak değerlendirilir.For example, wi-fi is a single term; whereas GUIDs (such as 3352CDD0-EF30-4A2E-A512-3B30AF40F3FD) are treated as a single token.
Sonek işlecinin *, yalnızca boşluktan önceki son karakter olması, bir terimin ortasında olmaması durumunda değil, bunun önüne alınması gerekir.The suffix operator * needs to be escaped only if it's the last character before whitespace, not if it's in the middle of a term. Örneğin, wi*fi tek bir belirteç olarak değerlendirilir.For example, wi*fi is treated as a single token.
Kaçış belirteçleri birlikte tutar, ancak çözümleme moduna bağlı olarak metin analizi bunları bölebilir.Although escaping keeps tokens together, text analysis may split them up, depending on the analysis mode. Ayrıntılar için bkz. Azure (bilişsel arama) REST API dil desteği .See Language support (Azure Cognitive Search REST API) for details.
OData ifadesi söz dizimiOData expression syntax