2017-02-20 160 views
0

誰能告訴我如何在elasticsearch-js中嚴格匹配。這裏是我的搜索節點彈性搜索嚴格匹配

client.search({{ 
    index: 'hash_tag', 
    type: 'hash_tag', 
    lenient:false, 
    body: { 
    query: { 
     match: { 
     tag_name: 'hash tag 1' 
     } 
    } 
    } 
}).then(function (body) { 
    console.log("body", JSON.stringify(body)); 
    }, function (error) { 
    console.trace(error.message); 
}) 

此查詢搜索要麼哈希標籤,1我正在尋找確切的整串match.here是我的榜樣指數的風格。

{ 
    "_index": "hash_tag", 
    "_type": "hash_tag", 
    "_id": "3483", 
    "_score": 0.019691018, 
    "_source": { 
    "id": "3483", 
    "labels": [ 
     "hash_tag" 
    ], 
    "tag_name": "hash tag 2" 
    } 
} 

回答

0

默認elasticsearch將「令牌化」文本字段將它們添加到倒排索引,這就是爲什麼你得到使用每個術語的結果。

爲了獲得完整的比賽,你可以有不同的方法,最簡單的是使用一個match_frase

GET /megacorp/employee/_search 
{ 
"query" : { 
    "match_phrase" : { 
     "about" : "rock climbing" 
    } 
    } 
} 

另一種選擇是增加特定字段的not_analyzed的映射,那麼文本不會被標記。

+0

它的工作原理。感謝馬科斯 – shivshankar