Docker 入門
Elasticsearch で全文検索を実行する(Windows PowerShell 7 版)
コマンドプロンプトでの利用
コマンドプロンプトでもある程度は Elasticsearch の検索などの操作は可能です.しかしながら,このページで示すとおりコマンドの見通しが悪くなるため,PowerShell 7 の利用を推奨します.
まず,API キーをシェル変数 MYAPIKEY に格納しますが,次のようなコマンドでキーを格納する方法が一般的でしょう.API キーは .env ファイルからコピーしてください.
C:\...\elastic202511>echo %MYAPIKEY% ⏎ %MYAPIKEY% C:\...\elastic202511>set MYAPIKEY=NlZGY3pwb0IyT1FPR1RNREtrRlc6WG1VUmZnVnYxSmYyMlpFMDQwTHJ6UQ== ⏎ C:\...\elastic202511>echo %MYAPIKEY% ⏎ NlZGY3pwb0IyT1FPR1RNREtrRlc6WG1VUmZnVnYxSmYyMlpFMDQwTHJ6UQ== C:\...\elastic202511>
続いて,Elasticsearch への接続確認を行います.シェル変数の指定方法が PowerShell と異なる程度です.
C:\...\elastic202511>curl -H "Authorization: ApiKey %MYAPIKEY%" "http://localhost:9200/?pretty" ⏎
{
"name" : "64a6250ff75e",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "eV0E_uSCRPSQH0_NXae1hA",
"version" : {
"number" : "9.2.1",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "4ad0ef0e98a2e72fafbd79a19fa5cae2f026117d",
"build_date" : "2025-11-06T22:07:39.673130621Z",
"build_snapshot" : false,
"lucene_version" : "10.3.1",
"minimum_wire_compatibility_version" : "8.19.0",
"minimum_index_compatibility_version" : "8.0.0"
},
"tagline" : "You Know, for Search"
}
C:\...\elastic202511>
ドキュメントの登録件数を確認します.これも問題なく動作します.
C:\...\elastic202511>curl -H "Authorization: ApiKey %MYAPIKEY%" "http://localhost:9200/hyaku_index/_count?pretty" ⏎
{
"count" : 100,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
}
}
C:\...\elastic202511>
例えば「君がため」というキーワードで全文検索を行います.次のとおり,コマンドプロンプトでは '' を利用できないことから,' の代わりに " をエスケープして \" と入力しなければなりません.
curl -H "Authorization: ApiKey %MYAPIKEY%" --json "{ \"query\": { \"match\": { \"uta\": \"君がため\" } } }" "http://localhost:9200/hyaku_index/_search?pretty"
実際にコマンドを入れて実行すると正しく検索できましたが,コマンドの見通しが悪くなることから,PowerShell の利用を推奨します.
C:\...\elastic202511>curl -H "Authorization: ApiKey %MYAPIKEY%" --json "{ \"query\": { \"match\": { \"uta\": \"君がため\" } } }" "http://localhost:9200/hyaku_index/_search?pretty" ⏎
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 2,
"relation" : "eq"
},
"max_score" : 4.3454294,
"hits" : [
{
"_index" : "hyaku_index",
"_id" : "gFGHzpoB2OQOGTMD10JU",
"_score" : 4.3454294,
"_source" : {
"id" : "50",
"uta" : "君がため 惜しからざりし 命さへ 長くもがなと 思ひけるかな",
"kana" : "きみがため をしからざりし いのちさへ ながくもがなと おもひけるかな",
"kajin" : "藤原義孝"
}
},
{
"_index" : "hyaku_index",
"_id" : "XVGHzpoB2OQOGTMDtEJd",
"_score" : 3.3278084,
"_source" : {
"id" : "15",
"uta" : "君がため 春の野に出でて 若菜つむ わが衣手に 雪はふりつつ",
"kana" : "きみがため はるののにいでて わかなつむ わがころもでに ゆきはふりつつ",
"kajin" : "光孝天皇"
}
}
]
}
}
C:\...\elastic202511>
なお,文字化けが発生する場合はここを参考に chcp 65001 コマンドを実行してください.