我想找到完全匹配。如果沒有匹配。我不想為空。
我正在搜索這個 id 6a8c283f-1e75-ec11-8943-000d3a15f525。它給了我這個輸出
- fcf0dd4e-abbc-ec11-983f-0022482588e9
但是這些它是不匹配的,只有ec11匹配的
我試過這個搜索查詢
result = await client.search({
index: 'products',
"query": {
"match": {
"sysid":sysid
}
}
})
uj5u.com熱心網友回復:
問題是因為您的sysid欄位屬于型別text,因此在索引時進行分析并標記為fcf0dd4e, abbc,ec11和.8943000d3a15f525
此外,當使用匹配查詢進行搜索時,搜索到的詞也會被分析為以下標記6a8c283f、1e75、ec11、8943、000d3a15f525。
如您所見,匹配有效,因為ec11匹配。
對于完全匹配,您需要做的是針對keyword欄位運行查詢。也許您很幸運,并且您的映射已經包含一個sysid.keyword子欄位。如果沒有,您需要更改映射并重新索引資料。
然后你就可以term像這樣運行你的查詢并得到你的完全匹配:
"term": {
"sysid.keyword":sysid
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/463963.html
標籤:javascript 节点.js 弹性搜索 亚马逊弹性豆茎 弹性堆栈
