Docs
문서 검색...⌘K

필터 구문

일부 API 엔드포인트는 where 파라미터를 허용하며, 이 파라미터는 결과 집합에 필터를 적용합니다.

아래 섹션에서는 필터 사용 예시와 전체 구문 참조를 제공합니다.

예시

info

더 현실적인 예시를 보려면, 시각적 인터페이스를 사용해 ahrefs.com의 보고서에 몇 가지 필터를 적용해 보세요. 그런 다음 API {} 버튼을 눌러 생성된 API v3 쿼리의 where 파라미터를 확인하세요.

필드 "foo"가 3과 같음:

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

object 타입 필드의 경우, 점 표기법을 사용하여 중첩 필드를 참조합니다. 필드 "foo" 아래에 중첩된 필드 "bar"가 3과 같음:

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

정수 필드 "foo"가 3과 같고 정수 필드 "bar"가 10보다 작음:

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

문자열 필드 "foo"의 값을 대문자로 변환한 값이 "AHREFS"와 같거나, 배열 필드 "bar"의 모든 문자열 요소가 접두사 "Ahrefs"와 접미사 "seo"를 가짐.

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

언어 참조

필터 구문은 BNF 스타일 표기법으로 표현된 아래 문법으로 설명됩니다.

꺾쇠 괄호 \<>로 둘러싸인 항은 기호를 의미합니다. +가 뒤에 오는 기호는 해당 기호를 포함하는 비어 있지 않은 배열을 의미합니다. 객체 필드 앞의 ?는 해당 필드가 선택 사항임을 나타냅니다.

두 개의 종단 기호는 다음과 같이 정의됩니다:

  • \<field_alias> 필터 필드 별칭. 유효한 별칭 목록은 해당 엔드포인트의 문서를 참조하세요. selectwhere 파라미터는 서로 다른 별칭을 허용할 수 있다는 점에 유의하세요.
  • \<value> JSON 값. 해당 값은 필드의 타입(modifier가 있는 경우에는 해당 modifier의 타입)과 일치해야 합니다.

정규식 필터 표현식에서 허용되는 패턴은 도구에 따라 다릅니다.

  • 키워드 익스플로러: 와일드카드 연산자는 *만 사용할 수 있습니다.
  • 사이트 익스플로러: 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> }