ES照会練習
5944 ワード
私が欲しい条件1)
符号化プロセス:requestで各フィールド値を受信→esに変換するために必要なquery文フォーマット→esでrequestを受信→esで与えられた応答を受信→所望の形式で加工に応答して提供
条件:blue、swashbucklesの両方に含まれるデータで、カテゴリがname goods、カテゴリがname goods、またはtravelのデータを検索します.
"query" => [
"bool" => [
"filter" => [
//searchKeywords
[
"query_string" => [
"query" => "(blue) AND (swashbucklers)"
]
],
[
"bool" => [
"must" => [
"match" => [
"cdn_category" => "(MALE_GOODS)"
]
]
]
],
// other fields
[
"bool" => [
"should" => [
["match" => [
"cdn_category" => "(MALE_GOODS)"
]],
["match" => [
"cdn_category" => "(JOURNEY)"
]],
]
]
]
]
]
]
コードがうまく整理されていませんが、たぶんそうするとき、私が欲しい値を得ました.query stringは、名前の通りクエリーリストであり、条件値にすぎません.
esではboolがfilter,shot,mustなどをバンドルする役割を果たす.
filterとmustはrdbのand条件と同じであり、filterが重み付けスコアをチェックしない点が異なる.そのため、速度を速めることができます.
hallはrdbで述べたor条件と同じである.
matchは最初は用語も使っていたし、普通のquery stringも使っていたので、検索してみるとこの2つよりもmatchが推奨されていることがわかりました.これはquery stringでandやorなど多くの演算子エラーが発生するためです.termについては,形態素解析器で開かれたタグに基づいて動作する.したがって、クエリ文と格納されたタグの形態素は、正しく一致する文を探します.△ここのhttps://brownbears.tistory.com/462部を読んでみると、すぐに理解できます.
リクエスト形式で送信されたデータをこのように取得する必要がある.
Reference
この問題について(ES照会練習), 我々は、より多くの情報をここで見つけました https://velog.io/@wjdgkrud/ES-쿼리문-연습テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol