[英]Elastic search retrieving results with half the value
我正在嘗試檢查 client_id 是否已存在於索引中。 但問題是 ES 仍然檢索完整的 ID,即使我給出了一半的 ID。 這是映射。
'mappings': {
'properties': {
'client_id': {'index': 'true','type': 'keyword'},
'client_name': {'index': 'true', 'type': 'keyword'},
'data_index_server': {'type': 'ip'},
'data_file_node_path': {'index': 'true', 'type': 'keyword'},
}
如果我有這樣的記錄
{
"_index": "client_index",
"_type": "_doc",
"_id": "wYlkrYMB_q_jkYaCv6pU",
"_version": 1,
"_score": 1,
"_source": {
"doc": {
"client_id": "0935be6b-61fe-4ec4-80c8-5c5ee8384378",
"client_name": "citi",
"data_file_node_path": " ",
"data_index_server": " "
}
},
"fields": {
"doc.client_id": [
"0935be6b-61fe-4ec4-80c8-5c5ee8384378"
],
"doc.client_name": [
"sample_name"
],
"doc.data_index_server": [
" "
],
"doc.client_name.keyword": [
"citi"
],
"doc.data_file_node_path.keyword": [
" "
],
"doc.client_id.keyword": [
"0935be6b-61fe-4ec4-80c8-5c5ee8384378"
],
"doc.data_index_server.keyword": [
" "
],
"doc.data_file_node_path": [
" "
]
}
}
我的搜索請求是這樣的。 如果我正在使用 ID 的某些部分並對其進行搜索。 我預計點擊率將為零
POST /client_index/_search
{
"query": {
"match": {
"doc.client_id":"0935be6b-61fe-4ec4-80c8" ,
}
}
}
我已經關注了這個 url: How to make elastic search only match full field 。 將字段類型更改為關鍵字,並在 true 和 false 之間切換索引,但沒有結果
我認為您混淆了一些東西,在映射中您只顯示了四個屬性,它們是簡單的字段,而在搜索響應中,它在類型為object
的fields
下有其他字段。
您沒看錯, keyword
字段未被分析,在這些字段上您將僅獲得完整字段值的結果。
您應該嘗試將您的client-id
定義為帶有示例字段的新索引中的關鍵字字段,然后搜索該索引以查看它的實際效果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.