Match Phrase Prefix Query

Match Phrase Prefix Query

  match_phrase_prefix和match_phrase是相同的,除了它容許文本中最後一項使用前綴匹配。例如:html

GET /_search
{
    "query": {
        "match_phrase_prefix" : {
            "message" : "quick brown f"
        }
    }
}

  它接受和短語類型同樣的參數。此外,它也接受max_expansions參數(默認50),它能夠控制最後一個項有多少前綴能夠擴展。它被強烈建議設置一個可接受的值,以控制查詢的時間。例如:java

GET /_search
{
    "query": {
        "match_phrase_prefix" : {
            "message" : {
                "query" : "quick brown f",
                "max_expansions" : 10
            }
        }
    }
}

  重要:match_phrase_prefix 查詢是a poor-man’s autocomplete。它很是容易使用,讓你快速開始搜索即時類型,但它的結果,一般是足夠好的,有時也會讓產生疑惑。elasticsearch

  考慮查詢字符串 quick brown f。此查詢經過從quick和brown建立短語查詢而工做(即quick項必須存在而且緊跟着brown項)。而後它搜索以f開通按照字典項排序的前50個項而且把這些項加入到短語查詢中。ide

  問題是,可能前50項中可能沒有包含fox,全部quick brown fox可能沒有被找到,這一般都不是問題,用戶能夠持續輸入更多的字符,直到他們搜索的詞出現爲止。ui

  更好的搜索即時類型(search-as-you-type)解決方案請看completion suggesterIndex-Time Search-as-you-typecode

 

原文地址:https://www.elastic.co/guide/en/elasticsearch/reference/5.0/query-dsl-match-query-phrase-prefix.htmlhtm

相關文章
相關標籤/搜索