กับการค้นหากันหรือ/และข้างในหรือ/และเงื่อนไขกับ Elasticsearch 7 ขวบx

0

คำถาม

ต้องการความช่วยเหลือ

ทำสืบค้นใน Elasticsearch เหมือนนี้:

SELECT * FROM  tableA WHERE 
tableA.clm1 IN ('A','B') 
AND 
(tableA.clm2 IN ('C', 'D') OR tableA.clm3 IN ('E','F'))
OR 
tableA.clm4 = 'Z'

ขอบคุณ

elasticsearch
2021-11-19 01:02:37
1

คำตอบที่ดีที่สุด

0

คุณสามารถใช้ bool query

  1. ต้อง/กรองข้อตกลงนั้--ทำงานเหมือน"และ". ต้อง calculates คะแนนและตัวกรอง
    เดียวที่เลือกเอกสารต่างๆ
  2. ควรจะเงื่อนไขว่า-ทำงานสายหรือ
{
  "query": {
    "bool": {
      "should": [  
        {
          "term": {
            "clm4.keyword": {
              "value": "Z"
            }
          }
        },  -- OR
        {
          "bool": {
            "filter": [
              {
                "terms": {
                  "clm1.keyword": [
                    "A",
                    "B"
                  ]
                }
              },  --AND
              {
                "bool": {
                  "should": [
                    {
                      "terms": {
                        "clm2.keyword": [
                          "C",
                          "D"
                        ]
                      }
                    }, --OR
                    {
                      "terms": {
                        "clm3.keyword": [
                          "E",
                          "F"
                        ]
                      }
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    }
  }
}
2021-11-19 07:01:02

ด้านข้อควรจำ:คุณควรจะชอบ filter แทนที่จะเป็น must ตอนที่มาทำอะไรตรงกันทั้งหมดค้นข้อมูล
Val

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่