Azure AI Searchλ₯Ό μ¬μ©ν΄ νΉμ μ¬μ©μ(evIUserId), νΉμ μΉ΄ν
κ³ λ¦¬(csagId)μ ν΄λΉνλ λ°μ΄ν°λ₯Ό μ‘°νν΄μΌ νλ€.
λ¬Έμ λ λ¨μ μ‘°νκ° μλλΌ ν λ²μ λ€μ΄μ€λ ID κ°μκ° λ§€μ° λ§μλ€λ μ μ΄λ€.
- evlUserId: μ΅λ 2,800κ°
- csagId: μ΅λ 2,800κ°
- νλ νμ : Edm.String (λ¨μΌ string)
“μ¬λ¬ κ° μ€ νλλΌλ μΌμΉνλ©΄ μ‘°ν”λΌλ 쑰건 μ체λ ννμ§λ§
λ§μ μ€μ λ°μ΄ν° κ·λͺ¨λ‘ λ리λ μμμΉ λͺ»ν μλ¬κ° νμ΄λμλ€π₯²π₯²
λ΄κ° μκ°μ μ§§κ² ν νμ΄λ€..γ
π κ³ λ―Ό
“ORλ‘ λ¬ΆμΌλ©΄ λκ² μ§?”
μ²μμλ λ¨μνκ² μκ°νλ€.
κ·Έλμ νν°λ₯Ό μ΄λ° μμΌλ‘ λ§λ€μλ€.
(evlUserId eq 'u1' or evlUserId eq 'u2' or evlUserId eq 'u3' or ...)
κ°μ΄ μλ°± κ°κ° λμ λ°λ‘ μλμ κ°μ μλ¬κ° λ°μνλ€.
recursion depth exceeded allowed limit parameter name: $filter
- νμ΄μ¬ μλ¬κ° μλλΌ Azure Search λ΄λΆ νμ μλ¬μκ³
- “μ” μ λλμ§ κ³΅μ λ¬Έμμμ λ°λ‘ λ΅μ μ°ΎκΈ° μ΄λ €μ κΈ° λλ¬Έμ΄λ€.
“쿼리λ λ§λ κ² κ°μλ°… μ ν°μ§μ§?”λΌλ μκ°μ΄ λ€μλ€.
π οΈ μλ
1οΈβ£ μ²μ μ¬μ©νλ μ½λ (λ¬Έμ μ μμΈ)
if key in keyword_keys:
i_v = [value.strip() for value in value.split(",") if value.strip()]
con = [f"{key} eq '{v}'" for v in i_v]
filters.append(f"({' or '.join(con)})")
μ΄λ° μμΌλ‘ μ§°μλ€.
λ Όλ¦¬μ μΌλ‘λ λ§μ μλ μμ§λ§..
Azure Searchλ $filter μμμ OR 쑰건μ μ¬κ·μ μΌλ‘ νμ± νλλ°
κ°μκ° λ§μμ§λ©΄ λ΄λΆ μ νμ μ΄κ³Όν΄ λ²λ¦°λ€
2οΈβ£ λμ νμ: search.in() μ¬μ©
μ°Ύμ보λ Azure Searchμλ λ€μ€ κ°μ λΉκ΅νκΈ° μν 곡μ ν¨μκ° μλλΌ!
search.in(field, 'A,B,C', ',')
μλ κ² λ°κΏμ€¬λ€.
π λ³ν / κ²°κ³Ό
- recursion depth μλ¬ β → μμ ν ν΄κ²°
- 쿼리 κ°λ μ± ↑
- Azure Searchκ° μλν λ°©μμΌλ‘ νν°λ§ κ°λ₯
- μ€μ μ΄μ λ°μ΄ν°(μμ² κ° ID)μμλ μμ μ μΌλ‘ λμ
무μ보λ€
π “μ μ λλμ§”λ₯Ό μ€λͺ
ν μ μκ² λλ€λ κ² κ°μ₯ μ»Έλ€!!(good)
μ΄ μλ¬λ λ Όλ¦¬ λ¬Έμ κ° μλ, ꡬ쑰 λ¬Έμ μλ€.
κ°μ΄ λ§μμ§μλ‘ ORμ μννκ³ , μ΄λ»κ² 보면 λ¨μ무μν? 쿼리λ€.
λ€μ€ κ° λΉκ΅λ search.in()κ³Ό κ°μ΄ λ€λ₯Έ λ°©μμ νμ©νλ κ²μ΄ ν¨μ¬ λ μ’μ 보μΈλ€.
κ·Όλ° μ΄κ² μ΅μ μΌκΉ? μΆκΈ΄ νλ€..γ γ γ ;;
μ°Ύμ보면 λ μ’μ κ² μμ κ±° κ°μλ°..
그건 λ―Έλμ λ΄κ° μ°Ύμ κ±°λ€ γ γ