Docs
Cari dokumen...⌘K

Sintaks filter

Beberapa endpoint API menerima parameter where, yang menerapkan filter pada kumpulan hasil.

Bagian-bagian berikut memberikan beberapa contoh penggunaan filter dan referensi sintaks lengkap.

Contoh

info

Untuk contoh dunia nyata yang lebih banyak, coba terapkan beberapa filter pada sebuah Laporan di ahrefs.com menggunakan antarmuka visual kami, lalu tekan tombol API {} untuk melihat parameter where dari kueri API v3 yang dihasilkan.

Kolom "foo" sama dengan 3:

{ "field": "foo", "is": ["eq", 3] }

Untuk kolom bertipe objek, gunakan notasi titik untuk merujuk ke kolom bersarang. Kolom "bar", yang bersarang di bawah kolom "foo", sama dengan 3:

{ "field": "foo.bar", "is": ["eq", 3] }

Kolom bilangan bulat "foo" sama dengan 3 dan kolom bilangan bulat "bar" kurang dari 10:

{
    "and": [
        { "field": "foo", "is": ["eq", 3] },
        { "field": "bar", "is": ["lt", 10] }
    ]
}

Nilai huruf besar dari kolom string "foo" sama dengan "AHREFS", atau semua elemen string di kolom array "bar" memiliki awalan "Ahrefs" dan akhiran "seo".

{
  "or": [
    {
      "field": "foo",
      "modifier": "uppercase",
      "is": ["eq", "AHREFS"]
    },
    {
      "field": "bar",
      "list_is": {
        "and": [
          ["prefix", "Ahrefs"],
          ["suffix", "seo"],
        ]
      }
    }
  ]
}

Referensi bahasa

Sintaks filter dijelaskan oleh tata bahasa berikut, yang dinyatakan dalam notasi bergaya BNF.

Istilah yang diapit tanda kurung sudut \< dan > menunjukkan sebuah simbol. Simbol yang diikuti oleh + menunjukkan sebuah array tidak kosong yang berisi simbol tersebut. ? yang mendahului sebuah kolom objek menunjukkan bahwa kolom tersebut bersifat opsional.

Dua simbol terminal didefinisikan sebagai berikut:

  • \<field_alias> Alias kolom filter. Lihat dokumentasi endpoint terkait untuk daftar alias yang valid. Perhatikan bahwa parameter select dan where mungkin menerima alias yang berbeda.
  • \<value> Nilai JSON. Nilai ini harus sesuai dengan tipe kolom (atau tipe modifier kolom tersebut, jika ada modifier).

Pola yang diizinkan dalam ekspresi filter regex berbeda-beda tergantung pada alatnya.

  • Keywords Explorer: Hanya * sebagai operator wildcard.
  • Site Explorer: sintaks RE2.
\<bool_filter> ::= { "and" : \<bool_filter>+ }
              |   { "or" : \<bool_filter>+ }
              |   { "not" : \<bool_filter> }
              |   \<expr>

\<expr> ::= {
             "field" : \<field_alias>,
             ? "is": \<condition>,
             ? "list_is": \<list_condition>
           }

\<condition> ::= [ "eq", \<value> ]
            |   [ "neq", \<value> ]
            |   [ "gt", \<value> ]
            |   [ "gte", \<value> ]
            |   [ "lt", \<value> ]
            |   [ "lte", \<value> ]
            |   [ "substring", \<value> ]
            |   [ "isubstring", \<value> ]
            |   [ "phrase_match", \<value> ]
            |   [ "iphrase_match", \<value> ]
            |   [ "prefix", \<value> ]
            |   [ "suffix", \<value> ]
            |   [ "regex", \<value> ]
            |   "empty"
            |   "is_null"

\<condition_bool_filter> ::= { "and" : \<condition_bool_filter>+ }
                        |   { "or" : \<condition_bool_filter>+ }
                        |   { "not" : \<condition_bool_filter> }
                        |   \<condition>

\<list_condition> ::= { "any" : \<condition_bool_filter> }
                 |   { "all" : \<condition_bool_filter> }