2017-10-16 98 views
0

我想知道如何與_all工作多匹配。比方說,我有以下查詢:elasticsearch如何與_all工作匹配?

"multi_match": { 
            "query": x, 
            "type": "phrase", 
            "fields":"_all", 
           } 

是可以搜索所有可用字段的特定短語,如果在各領域存在的短語返回一個記錄?如果某些領域有其他領域,而其他領域則沒有?

回答

0

_all場是所有的字段連接成一個大的字符串,然後分析它只是場以標準方式 - 如果沒有使用標準分析儀定義文本。 https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-all-field.html

它可以從_all領域,同時用PARAM「include_in_all」 https://www.elastic.co/guide/en/elasticsearch/reference/current/include-in-all.html

所以它是有意義的你的所有字段的串聯使用短語查詢定義你的映射刪除一些領域?而不是。我會說,multi_match可以讓你實現類似的目標作爲_all字段 - >你可以在一個查詢中搜索多個字段。但是當使用_all字段時,你可以使用'match'查詢。

0

_all場指數(在6.0移除)從您的JSON文件的任何領域,他們出現在所有的值。

+0

感謝@dadoonet的評論。但是爲什麼當我只使用指定2個字段的同一個查詢時,我得到的記錄數比我做_all時的記錄數多呢?例如,如果我使用_all我得到100條記錄,但當我使用「字段」:[「標題」,「描述」]我得到101條記錄,其中只有86條記錄被複制! – Mandy