日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

在TairSearch中使用bool進行組合條件查詢

TairSearch是Tair團隊完全自研的全文搜索數(shù)據(jù)結(jié)構,采用和Elasticsearch相似的查詢語法。本文介紹如何在TairSearch中使用bool語法,實現(xiàn)復雜場景的查詢。

bool語法詳解

bool是TairSearch中支持復雜、組合查詢的語法,支持如下3種子句類型:

  • must:類似AND的語義,在must數(shù)組中的條件均為必要條件,查詢結(jié)果集必須命中must數(shù)組中的查詢條件。

  • must_not:類似NOT的語義,查詢結(jié)果集必須不包含must_not數(shù)組中的查詢條件。

  • should:類似OR的語義,在should數(shù)組中的條件均為可選條件。可搭配minimum_should_match參數(shù)使用,該參數(shù)表示至少需匹配多少個should查詢子句,若bool語句中只存在should語句,則該參數(shù)默認為1;若bool語句中還存在mustmust_not語句,則該參數(shù)默認為0。

    mustshould語句同時命中某文檔,則該文檔會因為多次命中而增加文檔score值,并影響結(jié)果排名。

TairSearch_boolbool語句的查詢優(yōu)先級為must_not > must > should,同時,bool語句中可嵌套任何類型的子查詢語句,包含bool語句,可由此實現(xiàn)復雜場景的查詢。更多關于TairSearch的信息,請參見Search

操作樣例

  1. 創(chuàng)建索引。

    TFT.CREATEINDEX key '{
        "mappings": {
            "properties": {
                "A": { "type": "keyword" },
                "B": { "type": "keyword" },
                "C": { "type": "keyword" }
            }
        }
    }'
  2. 添加文檔數(shù)據(jù)。

    TFT.ADDDOC key '{
        "A": "a",
        "B": "b",
        "C": "c"
    }'
  3. 查詢示例。

    示例1:SELECT A = a and B = b

    TFT.SEARCH key '{
        "query": {
            "bool" : {
                 "must": [
                     { "term": { "A": "a" } },
                     { "term": { "B": "b" } }
                 ]
             }
        }
    }'

    示例2:SELECT A = a or B = b

    TFT.SEARCH key '{
        "query": {
            "bool": {
                 "should": [
                     { "term": { "A": "a" } },
                     { "term": { "B": "b" } }
                 ]
             }
        }
    }'

    示例3:SELECT A = a and B != b

    TFT.SEARCH key '{
        "query": {
            "bool": {
                "must": [
                     { "term": { "A": "a" } }
                ],
                "must_not": [
                     { "term": { "B": "b" } }
                ]
            }
        }
    }'

    示例4:SELECT (A = a and B = b) or C = c

    TFT.SEARCH key '{
        "query": {
            "bool" : {
                "should": [
                    {
                        "bool": {
                            "must": [
                                 { "term": { "A": "a" } },
                                 { "term": { "B": "b" } }
                             ]
                        }
                    },
                    { "term": { "C": "c" }  }
                ]
            }
        }
    }'