elasticsearch span 경계 조회 안내

4184 단어 elasticsearch

span_term 조회


이 검색을 단독으로 사용하면 효과는term 검색과 차이가 많지 않지만, 일반적으로 다른span 검색의 하위 검색에 사용됩니다.
사용법도 간단합니다. 쿼리의 필드만 지정하면 됩니다.
{
    "span_term" : { "user" : "kimchy" }
}

또한 쿼리의 분수 배수를 지정할 수 있습니다.
{
    "span_term" : { "user" : { "value" : "kimchy", "boost" : 2.0 } }
}

span_multi 쿼리


span_multi는 multi_를 포장할 수 있습니다.term 조회, 예를 들어wildcard,fuzzy,prefix,term,range 또는regexp 등은 그들을 포장하여span 조회로 삼는다.
사용법도 간단하고 내부에 일반적인 멀티_term 조회하면 됩니다.
{
    "span_multi":{
        "match":{
            "prefix" : { "user" :  { "value" : "ki" } }
        }
    }
}

boost 곱하기 값을 사용하여 질의 결과의 점수를 변경할 수도 있습니다.
{
    "span_multi":{
        "match":{
            "prefix" : { "user" :  { "value" : "ki", "boost" : 1.08 } }
        }
    }
}

span_first 쿼리


이 질의는 시작 위치에 대한 단어의 오프셋 위치를 결정하는 데 사용됩니다. 예를 들어 다음과 같습니다.
만약 문서 필드의 내용이 "hello, my name istom"이라면, 우리는tom를 검색하려고 합니다. 그러면 span_first는 최소 5여야 합니다. 그렇지 않으면 찾을 수 없습니다.
사용할 때 span_보다term에 end 경계가 하나 더 생겼을 뿐입니다.
{
    "span_first" : {
        "match" : {
            "span_term" : { "user" : "kimchy" }
        },
        "end" : 3
    }
}

span_near 쿼리


이 조회는 주로 몇 개의 span_term 사이의 거리는 일반적으로 몇몇 인접한 단어를 검색하는 데 사용되며, 전체 필드의 검색으로 인해 최종 결과를 방해하지 않도록 합니다.
조회는 주로 두 부분으로 구성되어 있는데, 일부분은 끼워 넣은 하위 span 조회이고, 다른 일부분은 그들 사이의 가장 큰 경계이다
{
    "span_near" : {
        "clauses" : [
            { "span_term" : { "field" : "value1" } },
            { "span_term" : { "field" : "value2" } },
            { "span_term" : { "field" : "value3" } }
        ],
        "slop" : 12,
        "in_order" : false,
        "collect_payloads" : false
    }
}

위의 예에서value1,value2,value3의 가장 긴 경계는 12를 초과할 수 없습니다.

span_또는 조회


이 조회는 하위 조회를 끼워 넣을 것입니다. 하위 조회 간의 논리적 관계는 또는
{
    "span_or" : {
        "clauses" : [
            { "span_term" : { "field" : "value1" } },
            { "span_term" : { "field" : "value2" } },
            { "span_term" : { "field" : "value3" } }
        ]
    }
}

span_not 조회


이 조회는 span_에 비해or로 말하면 배제한다는 뜻이다.그러나 그 내부에는 몇 가지 속성이 있습니다. include는 포함된span 조회를 정의하는 데 사용됩니다.exclude는 배제된span 조회를 정의하는 데 사용됩니다.
{
    "span_not" : {
        "include" : {
            "span_term" : { "field1" : "hoya" }
        },
        "exclude" : {
            "span_near" : {
                "clauses" : [
                    { "span_term" : { "field1" : "la" } },
                    { "span_term" : { "field1" : "hoya" } }
                ],
                "slop" : 0,
                "in_order" : true
            }
        }
    }
}

span_containing 조회


이 조회 내부에 여러 개의 하위 조회가 있을 수 있지만, 어떤 하위 조회의 우선순위가 높고, 작용이 더 크며, 키워드little과big를 통해 지정합니다.
{
    "span_containing" : {
        "little" : {
            "span_term" : { "field1" : "foo" }
        },
        "big" : {
            "span_near" : {
                "clauses" : [
                    { "span_term" : { "field1" : "bar" } },
                    { "span_term" : { "field1" : "baz" } }
                ],
                "slop" : 5,
                "in_order" : true
            }
        }
    }
}

span_within 조회


이 조회와span_containing 조회 작용이 많지 않지만 span_containing은 lucene의 SpanContainingQuery를 기반으로 하고 span_within은 SpanWithinQuery 기반입니다.

좋은 웹페이지 즐겨찾기