ユニークな検索エンジンを生成AIで探し、ローカルにあるPowerShellから検索を行うというフローをPowerShellプロファイルに書き込んでみたが、さらに効率化する術はないか?と考えると、真っ先に思い浮かぶのが"串刺し検索"である。
AIが浸透した現在では見かけなくなったが、以前は複数サイトを同じキーワードで一括に検索できる串刺し検索サイトを活用することも多かった。
○パラメータで検索する
前回、番号で選択して検索エンジンを既定ブラウザで起動するkensakuコマンドを書いてみたが、検索キーワードもPowerShell上から入力するには、param()関数に引数を渡す形を加える。と同時に検索サイトのアドレスのクエリー部分に対応するURLに書き換える必要がある。各検索サイトによって違うので、量が多いとAIに抜き出してもらう方法もあるが、筆者が試したところ2割くらいが古いものだった。対応していないものや「あなたは人間ですか?」の無礼なチェックボックスにも遭遇するので、実際にアクセスして、使用する検索サイトを選別、抜き出す部分を抽出するのがよい。
function kensaku {
param($Query)
if (-not $Query) {
Write-Host "検索語を入力してください"
return
}
$kensaku = @{
"Google:言わずもがなのスタンダードである検索サイト" = "https://www.google.com/search?q="
"Bing:Microsoft謹製検索サイト。人によってはこちらがいいという話も" = "https://www.bing.com/search?q="
"Yahoo!:日本国内情報のポータルサイト" = "https://search.yahoo.co.jp/search?p="
"DuckDuckGo:プライバシー重視の検索エンジン" = "https://duckduckgo.com/?q="
"Brave Search:独自インデックスの新興検索" = "https://search.brave.com/search?q="
"Mojeek:英国発。独自クローラ運営にこだわり" = "https://www.mojeek.com/search?q="
"GitHub Search:こちらもOSSプロジェクト探索。GitHuBの検索エンジン" = "https://github.com/search?q="
"marginalia:スウェーデンのソフトウェアエンジニアにより開発されたOSSの検索エンジン" = "https://search.marginalia.nu/search?query="
}
$keys = @($kensaku.Keys)
for($i=0; $i -lt $keys.Count; $i++) {
Write-Host "$($i+1) : $($keys[$i])"
}
$choice = Read-Host "番号"
$key = $keys[$choice - 1]
$url = $kensaku[$key] + $Query
Start-Process $url
}
これを実行すると、検索キーワードを付して検索できるようになる。こっちのほうが機能的であるといえる。
○串刺し索検コマンドを作る
串刺し索検は、キーワードに対して複数の検索サイトで検索することである。であるからして、ユーザー(自身)に入力部分の選択をさせる必要がないので、先のkensaku関数からユーザー入力部分を省き、foreachを使ってパラメーターとハッシュテーブルのURLを結合させる。
function kensaku-all {
param($Query)
if (-not $Query) {
Write-Host "検索語を入力してください"
return
}
$kensaku = @{
"Google:言わずもがなのスタンダードである検索サイト" = "https://www.google.com/search?q="
"Bing:Microsoft謹製検索サイト。人によってはこちらがいいという話も" = "https://www.bing.com/search?q="
"Yahoo!:日本国内情報のポータルサイト" = "https://search.yahoo.co.jp/search?p="
"DuckDuckGo:プライバシー重視の検索エンジン" = "https://duckduckgo.com/?q="
"Brave Search:独自インデックスの新興検索" = "https://search.brave.com/search?q="
"Mojeek:英国発。独自クローラ運営にこだわり" = "https://www.mojeek.com/search?q="
"GitHub Search:こちらもOSSプロジェクト探索。GitHuBの検索エンジン" = "https://github.com/search?q="
"marginalia:スウェーデンのソフトウェアエンジニアにより開発されたOSSの検索エンジン" = "https://search.marginalia.nu/search?query="
}
foreach($engine in $kensaku.Keys){
$url = $kensaku[$engine] + $Query
Start-Process $url
}
}
実行させると
.











![[USBで録画や再生可能]Tinguポータブルテレビ テレビ小型 14.1インチ 高齢者向け 病院使用可能 大画面 大音量 簡単操作 車中泊 車載用バッグ付き 良い画質 HDMI端子搭載 録画機能 YouTube視聴可能 モバイルバッテリーに対応 AC電源・車載電源に対応 スタンド/吊り下げ/車載の3種類設置 リモコン付き 遠距離操作可能 タイムシフト機能付き 底部ボタン 軽量 (14.1インチ)](https://m.media-amazon.com/images/I/51-Yonm5vZL._SL500_.jpg)