先準備測試資料,es有提供有關批量執行的方式:_bulk
參考:但是在postman中插入式異常,所以暫時使用單條插入的方式
put localhost:9200/movies/movie/1
put localhost:9200/movies/movie/2
put localhost:9200/movies/movie/3
put localhost:9200/movies/movie/4
put localhost:9200/movies/movie/5
put localhost:9200/movies/movie/6
資料插入完畢,可以使用全文查詢驗證一下
post localhost:9200/_search
}}
查詢"genres"字段含有"drama"的movie
post localhost:9200/_search
} ]
}}}
"match": 子句表示"genres"字段包含"drama"內容,"match"可有多個
查詢結果
,
"hits":
},},
},},}]
}}
可以看到一共五個結果,並且"genres"欄位中都包含了"drama"內容
如果我們需要對查詢出的5個內容進行進一步的過濾,就需要用到"filter"子句了
例如:查詢"genres"字段含有"drama"的movie,過濾出結果中"year"欄位為 1962 的movie
post localhost:9200/_search
} ],
"filter":[}]
}}}
查詢結果:
,
"hits":
}, }]
}}
可以看到,結果只剩倆條了,並且這倆條的記錄的"year"欄位都為 1962
從官方文件中得知"term"子句的功能是某欄位精確匹配指定值,例如"term":
可是我在查詢例如:"term":時,沒有匹配資料,希望有人能告知我這是什麼原因。
當然,es也提供了範圍過濾,使用的是"range"子句,例如:
post localhost:9200/_search
} ],
"filter":[}}
]}
}}
這條"range":}子句的意思為,過濾出結果中"year"字段大於 2000 的內容
結果為:
,
"hits": }]
}}
"match_phrase"子句查詢:
post localhost:9200/_search
} }}
"match_phrase"官方文件的解釋為短語匹配查詢,但是個人對這個子句沒太用明白
上面的事例中主要注意"slop"字段,它表示"query"欄位以","分割的倆個短語中間最多可以間隔的單詞個數
查詢結果為:
,
"hits": }]
}}
可以看到查詢結果的"title"欄位中的"lawrence"和"arabia"中間間隔了乙個短語"of"
"match_phrase_prefix"短語字首匹配查詢
post localhost:9200/_search
}}}
和"match_phrase"不同的一點在於,"match_phrase_prefix"只需"title"欄位中含有"mock"開頭的短語即可成功匹配
結果為:
,"hits": }]
}}
官方文件中該子句還可以包含"max_expansions"字段,經過一番測試並沒有發現其作用,希望有人能夠指教一下。
"multi_match"多欄位匹配查詢
post localhost:9200/_search
}}
"multi_match"用於多欄位匹配查詢,使用"fields"來指定要匹配哪些字段
結果:
,
"hits":
},},}]
}}
查詢結果中,"title"、"director"任意乙個欄位中包含"ford"短語即可成功匹配
"director^3"官方文件解釋為該字段為3倍的重要,其效果很明顯,"director"字段匹配成功的都排在前面
6 3學習記錄
今天下午差不多花了3個小時左右學習了linuxc中關於陣列和指標的內容。由於內容比較難懂,我也只是學到了一些皮毛,以下列出的知識點算是今天的一些小收穫。1.指標的型別和指標所指向的型別,這兩點是有區別的,至於區別是什麼,我也沒弄懂現在,今後搞懂了會做進一步補充。2.常量指標和指標常量的區別。cons...
6 3學習筆記
定義css樣式 1.html標記定義 pp可以叫做選擇器,定義那個標記中的內容執行其中的樣式 乙個選擇器可以控制若干個樣式屬性,他們之間需要用英語的 分號 隔開最後乙個可以不加 2.class定義 class定義由.點 開始 p 3.id定義 與class用法類似 p 4.優先順序id class ...
6 3 多人協作
當你從遠端倉庫轉殖時,實際上git自動把本地的master分支和遠端的master分支對應起來了,並且,遠端倉庫的預設名稱是origin。要檢視遠端庫的資訊,用git remote git remote origin 或者,用git remote v顯示更詳細的資訊 git remote v ori...