結構化搜尋

2021-10-04 16:45:44 字數 3456 閱讀 6474

結構化資料

結構化搜尋(structured search) 是指對結構化資料的搜尋

⽇期,布林型別和數字都是結構化的

⽂本也可以是結構化的。

如彩⾊筆可以有離散的顏⾊集合: 紅(red) 、 綠(green) 、 藍(blue)

⼀個部落格可能被標記了標籤,例如,分布式(distributed) 和 搜尋(search)

電商⽹站上的商品都有 upcs(通⽤產品碼 universal product codes)或其他的唯⼀標

識,它們都需要遵從嚴格規定的、結構化的格式。

es 中的結構化搜尋

布林,時間,⽇期和數字這類結構化資料:有精確的格式,我們可以對這些格式進⾏邏輯操

作。包括⽐較數字或時間的範圍,或判定兩個值的⼤⼩。

結構化的⽂本可以做精確匹配或者部分匹配

term 查詢 / prefix 字首查詢

結構化結果只有「是」或「否」兩個值

根據場景需要,可以決定結構化搜尋是否需要打分

#對布林值 match 查詢,有算分

post products/_search}}

,

"hits" : ,

"max_score" : 0.35667494,

"hits" : [

,"_explanation" : ,,]

},,,,

,]}]

}]}},

,"_explanation" : ,,]

},,,,

,]}]

}]}},

,"_explanation" : ,,]

},,,,

,]}]

}]}}

]},

"profile" : }],

"rewrite_time" : 2736,

"collector" : []}

]}

],"aggregations" : [ ]}]

}}

#對布林值,通過constant score 轉成 filtering,沒有算分

post products/_search}}

}}

,

"hits" : ,

"max_score" : 1.0,

"hits" : [

,"_explanation" : },,

"_explanation" : },,

"_explanation" : }]

},"profile" : ,

"children" : [}]

}],

"rewrite_time" : 3907,

"collector" : []}

]}

],"aggregations" : [ ]}]

}}

#數字型別 term

post products/_search}}

,

"hits" : ,

"max_score" : 1.0,

"hits" : [

,"_explanation" : },,

"_explanation" : }]

},"profile" : }],

"rewrite_time" : 2565,

"collector" : []}

]}

],"aggregations" : [ ]}]

}}

#數字型別 terms

post products/_search}}

}}

,

"hits" : ,

"max_score" : 1.0,

"hits" : [

},},}]

}}

#數字 range 查詢

gt ⼤於

lt ⼩於

gte ⼤於等於

lte ⼩於等於

get products/_search}}

}}}

,

"hits" : ,

"max_score" : 1.0,

"hits" : [

},},}]

}}

# 日期 range

y 年m 月

w 周d 天

h / h 小時

m 分鐘

s 秒post products/_search}}

}}}

,

"hits" : ,

"max_score" : null,

"hits" : [ ]

}}

範圍查詢中的日期格式

預設使用設定在日期欄位中的format引數解析格式化日期,但是,此引數可以通過在範圍查詢中設定format引數來進行覆蓋。

post products/_search}}

}

,

"hits" : ,

"max_score" : 1.0,

"hits" : [}]

}}

範圍查詢中的時區

通過在日期值中指定時區或使用time_zone引數指定時區,可以轉換日期時區。

post products/_search}}

}gte引數的日期值將會被轉化為2014-12-31t23:00:00 utc

now不會被time_zone引數影響(日期必須儲存為utc)

#exists查詢(空值排除)

post products/_search}}

}}

,

"hits" : ,

"max_score" : 1.0,

"hits" : [},}

]}}

#(不包含日期的)

post products/_search}}

}}}}

,

"hits" : ,

"max_score" : 1.0,

"hits" : [},}

]}}

#處理多值字段,term 查詢是包含,而不是等於

post movies/_search}}

}}

,

"hits" : ,

"max_score" : 1.0,

"hits" : [

},},

},},

},},

},},},}

]}}

#字元型別 terms

post products/_search}}

}}

,

"hits" : ,

"max_score" : 1.0,

"hits" : [},}

]}}

ElasticSearch 結構化搜尋

結構化結果只能有 是 和 否 兩個值 根據場景需要,可以決定結構化搜尋是否需要打分 準備資料delete products post products bulk 對布林型的值做結構化的搜尋post products search 布林型的值做結構化的搜尋 跳過算分post products sear...

elasticsearch筆記 結構化搜尋 四

結構化搜尋 structured search 是指有關探詢具有內在結構資料的過程。比如日期 時間和數字都是結構化的 它們有精確的格式,我們可以對這些格式進行邏輯操作。比較常見的操作包括比較數字或時間的範圍,或判定兩個值的大小。注意 對於結構化文字來說,乙個值要麼相等,要麼不等.select doc...

結構化 半結構化和非結構化資料

在實際應用中,我們會遇到各式各樣的資料庫如nosql非關聯式資料庫 memcached,redis,mangodb rdbms關聯式資料庫 oracle,mysql等 還有一些其它的資料庫如hbase,在這些資料庫中,又會出現結構化資料,非結構化資料,半結構化資料,下面列出各種資料型別 結構化資料 ...