Bu kılavuzda, liste filtresi söz dizimi ve çeşitli filtrelerin kaynak türleri.
Bazı API yöntemleri, tıklayın.
Özet
Bu bölümde, liste filtresi söz dizimi yapısına dair kısa bir genel bakış sunulmaktadır.
Filtre,
expression
içeren bir dizedir.expression
, bir Boole'dir Karşılaştırma kombinasyonu:expression = ["NOT"] comparison { ("AND" | "OR") ["NOT"] comparison } expression = ( expression )
comparison
, bir kaynak alanını bir değerle eşleştirir. Kullanabileceğiniz tüm yaygın karşılaştırma operatörleri.comparison = name OP value OP = "<=" | "<" | ">=" | ">" | "!=" | "=" | ":"
has
operatörü olan iki nokta üst üste (:
), dizelerde kullanılabilir ve tekrarlanabilir alanları. Ayrıntılı bilgi için Operatör içeriyor bölümüne bakın.Filtrelerde aşağıdaki değer türlerini kullanabilirsiniz:
- Numbers
- Dize
- Parantez içindeki ifadeler
value = number| string | "*" | "(" expression ")"
Dizeler aşağıdakileri temsil edebilir:
- Rastgele metin
- Boole'lar
- Enum değerleri
- Zaman damgaları
Boole ifadeleri
expression = ["NOT"|"-"] comparison {["AND" | "OR"] ["NOT"|"-"] comparison}
İşlemler aşağıdaki sırayla gerçekleştirilir:
NOT
OR
AND
Örneğin, aşağıdaki ifadeler eşdeğerdir:
a OR NOT b AND NOT c OR d
(a OR (NOT b)) AND ((NOT c) OR d)
Karşılaştırmalarda AND
operatörünü çıkarabilirsiniz. Örneğin,
filtreleri aynıdır:
c=d AND e=f
c=d e=f
NOT
için alternatif olarak kısa çizgiyi (-
) kullanabilirsiniz. Bir
kısa çizgi (-
) ile aşağıdaki karşılaştırma arasındaki boşluk bırakılmalıdır. Örneğin,
aşağıdaki filtreler aynıdır:
NOT e=f
-e=f
Karşılaştırmalar
Bu bölümde aşağıdakiler gibi "name OP value"
karşılaştırmaları açıklanmaktadır:
comparison = name OP value
burada
OP = "<=" | "<" | ">=" | ">" | "!=" | "=" | ":"
name = identifier { "." identifier }
identifier = unquoted_text
value = number | string | "*" | "(" expression ")"
Karşılaştırmanın sol tarafında, bir API kaynağı alanının yol adı yer alır.
Ad, döneme (.
) göre bağlanan bir dizi kaynak tanımlayıcıdan oluşur.
Her alan tanımlayıcısının ardından söz konusu alanın bir sonraki adı gelir. Örneğin,
Örneğin, karmaşık bir alanı olan item
ve başka bir
shape
adlı bir alanı içeren tool
karmaşık alanı. Bunun için bir filtrede
kaynağı ise item.tool.shape
şeklinde bir şekle atıfta bulunursunuz.
Sağ taraf, genellikle alanın kıyaslamadığı bir meseledir. Değişmez Değer türlerini inceleyin bölümüne bakın.
Karşılaştırmanın sağ tarafı, parantez içinde Boole olarak da ifade edilebilir
düz değerler ve/veya yalnızca
değişmez değerler (NOT
ile başlayan veya olmayan değerler). Sol taraftaki ad ve
karşılaştırma operatörü, değerlerin her birine uygulanır. Örneğin,
aşağıdaki filtreler aynıdır:
deal.name = ("test 1" OR "test 2")
deal.name = "test 1" OR deal.name = "test 2"
Aşağıda iki eşdeğer kavramın daha karmaşık bir filtreler:
deal.name = ("test 1" OR "test 2" AND (NOT "test3" OR "test4"))
(deal.name = "test 1" OR deal.name = "test 2") AND ( (NOT deal.name = "test3") OR deal.name = "test4")
Değer Değişmez Değer türleri
Karşılaştırma operatörünün sağ taraf değeri, Sayı ve Dize değişmez değerleri.
Sayı
Bu bölümde sayısal değişmez değerlerin gösterimi açıklanmaktadır.
Tür | Tanım | Örnekler |
---|---|---|
Çift | İşareti ("-") içeren veya içermeyen, ondalık nokta içeren herhangi bir sayı çift olarak ele alınır. |
|
Tamsayı | İşaretli veya işaretisiz ondalık noktası olmayan tüm sayılar ("-"), bir tam sayı olarak kabul edilir. |
|
Dize
Bu bölümde, filtre söz dizimi.
Tür | Tanım | Örnekler |
---|---|---|
Boole | TRUE veya FALSE (büyük/küçük harf kullanımı). |
|
Enum | Bir numaralandırma türü sabit değerinin adı. Sıralamalar büyük/küçük harfe duyarlıdır. |
FINALIZED , Finalized ile aynı değil
|
Dize | UTF-8 kodlu veya 7 bitlik ASCII metin içeren tüm dizeler. Katıştırılmış tırnak işaretleri içine ters eğik çizgi koyulmalıdır. Boşluk içeren tırnak içine alınmamış dizeler, örtülü "VE" olarak kabul edilir dizeyi boşlukla böldükten sonra tüm sözcüklerin arasına ekler. |
|
Zaman damgası | ISO8601 standart biçiminde bir dize. |
"2014-10-02T15:01:23.045Z"
|
Karşılaştırma operatörleri
Karşılaştırma operatörleri şunlardır:
- Küçüktür veya eşittir:
"<="
- Şundan küçük:
"<"
- Büyüktür veya eşittir:
">="
- Şundan büyük:
">"
- Eşit değildir:
"!="
- Şuna eşit:
"="
- Şunları içeriyor:
":"
Bu operatörler Double, Integer, Boole, Enum ve Timestamp değerleri için geçerlidir. bulunur.
Operatör içeriyor
Aşağıdakilerde özel işlemler için HAS
operatörünü (:
) kullanabilirsiniz.
alanlar:
- Alt dizeler
- Bir dize sütunundaki değerleri
HAS
ile karşılaştırmak için dize, operatör bir alt dize işlemi olarak hareket eder. Örneğin,name:"abcd"
,name
değerinin"abcd"
. - Varlık kontrolü
HAS
operatörünü*
özel karakteriyle kullandığınızda,HAS
operatörü, boş olmayan değerleri kontrol eder. Örneğin,name:*
,name
değerinin null, eksik veya tanımsız olmadığı tüm örnekleri döndürür. ziyaret edin.
HAS
operatörünü dize dışı değerlerle kullandığınızdaEQUALS
(=
) operatörü. Örneğin,isCompleted:true
,isCompleted = true
ile aynıdır.- Yinelenen Alanlar
Yinelenen bir API kaynağını filtrelemek için
HAS
(:
) operatörünü kullanabilirsiniz alanına değer girmeniz gerekir:- Alan tanımlayıcı yolunda yalnızca bir tekrarlanan bileşen var
- Alan yolunun son tanımlayıcısı skaler türdedir
İç içe yerleştirilmiş yinelenen alanlarda filtreleme desteklenmez.
Aşağıda bununla ilgili bir örnek verilmiştir:
item
,"red"
gibi dize değerleri içeren bircolors
alanı içerir,"blue"
ve"yellow"
.item.colors:("red")
,"red"
colors
alanı için geçerlidir.item.colors:("red" "yellow")
, hem"red"
hem de kelime içeren tüm öğeleri döndürürcolors
alanına"yellow"
.item.colors:("red" OR "yellow")
,"red"
veyacolors
alanına"yellow"
.
item
ayrıca skalerli karmaşık bir nesne olan tekrarlanan birtools
alanına sahipshape
alanı; değerleri"square"
veya"round"
olabilir.item.tools.shape:("square")
,"square"
şekli olan tüm öğeleri döndürür araçlar.item.tools.shape:("square" "round")
, hem"square"
ve"round"
şekilli araç.item.tools.shape:("square" OR "round")
, şuna sahip tüm öğeleri döndürür:"square"
şekil aracı veya"round"
şekilli araç.
Doldurulmamış iç içe yerleştirilmiş alanlar
İç içe yerleştirilmiş alanlar, kök düzeyindeki alanların alt alanlarıdır. Örneğin, shape
item.tools.shape
, items.tools
öğesinin iç içe yerleştirilmiş bir alanıdır.
Kök düzeyindeki alanlar için varsayılan olarak "false" değeri kullanılır. İç içe geçmiş alanlar varsayılan olarak doldurulmaz.
Doldurulmamış iç içe geçmiş alanlara sahip nesneler negatif değer döndürmez
filtreleri (!=
).
Aşağıda bununla ilgili bir örnek verilmiştir:
item.tools
, değeri "SMALL"
, "MEDIUM"
olarak ayarlanabilen bir size
enum içerir,
veya "LARGE"
.
Aşağıdaki öğelere sahipseniz:
{
"name": "item1",
"tools": {
"size": "MEDIUM"
}
},
{
"name": "item2",
"tools": {
"size": "LARGE"
}
},
{
"name": "item3"
}
"tools.size != SMALL"
negatif filtresiyle items.list
için yapılan bir çağrı şu sonucu döndürür:
şu:
{
"items": [
{
"name": "item1",
"tools": {
"size": "MEDIUM"
}
},
{
"name": "item2",
"tools": {
"size": "LARGE"
}
}
]
}
item.tools.size
, item3
için ayarlanmadığından negatif filtrede
item3
nesnesini döndürür.
Örnekler
Örnek | Açıklama |
---|---|
externalDealId = "123456789" |
"123456789" dize değerine sahip externalDealId . |
advertiserId:93641 |
advertiserId değeri 93641 tam sayıdır. |
isSetupComplete = true |
isSetupComplete , DOĞRU sayısına eşit. |
updateTime > "2018-02-14T11:09:19.378Z" |
updateTime , 14.02.2018 11:09:19.378 UTC'den sonradır |
displayName = "proposal" AND proposalRevision = 3 |
displayName dizesi, aynı "teklif" değerine sahip VE OfferRevision değeri 3'e eşittir. |
displayName = "proposal" OR proposalRevision = 3 |
displayName , "teklif" dize değerine sahip VEYA offerRevision değeri 3'e eşitse. |
NOT displayName = "proposal" |
displayName , "teklif"e eşit değildir. |
proposalState = (PROPOSED OR BUYER_ACCEPTED) |
proposalState , PROPOSED VEYA BUYER_acceptED değerine eşit bir numaralandırma değerine sahip. |
proposalState = (PROPOSED AND BUYER_ACCEPTED) |
proposalState , PROPOSED AND BUYER_acceptED değerine eşit bir sıralama değerine sahip |
dealName = Test Deal |
INVALID ifade |
dealName = "Test Deal" |
dealName , "Test Anlaşması"na eşit. |
dealName = (Test Deal) |
dealName , "Test" değerine eşit ve aynı zamanda "Anlaşma"ya eşittir. |
dealName = ("Test1" OR "Test2") |
dealName , "Test1" değerine eşit veya "Test2"ye eşittir. |
dealName:* |
dealName is not null. |
dealName:"test" |
dealName , "test" alt dizesini içeriyor. |
dealName:("A B") |
dealName , "A B" alt dizesini içeriyor. |
dealName:(A B) |
dealName , "A" alt dizesini içeriyor ile "B" alt dizesi gelir. |
dealName:("A" OR "B" AND "C") |
dealName , "A" alt dizesini içeriyor VEYA "B" VE ayrıca "C" alt dizesini içerir |
dealName:("A B" C) |
dealName , "A B" alt dizesini içeriyor ve "C" alt dizesini içerir. |
dealName:("A B" OR C D) |
dealName , "A B" alt dizesini içeriyor veya "C"yi içerir ve ayrıca "D" alt dizesini içerir. |
dealName:(NOT "A" B) |
dealName , "A" alt dizesi içermiyor ve "B" alt dizesini içerir. |
dealName:(NOT "A" OR "B") |
dealName , "A" alt dizesi içermiyor veya "B" alt dizesi içeriyorsa |