2つのリストの共通要素を検索
2つのリストの積集合とは、両方の入力に存在する要素の集まりです。このツールは比較を行い、共通する値を1つ目のリストに最初に現れる順序で、1回ずつ返します。キーワード調査結果の照合、タグの整理、許可リストの確認、2つのデータソースに共通する部分の抽出に便利です。既定では完全一致を使い、大文字と小文字を区別しない設定でも返される表記は変更しません。
無料で実行
比較に適した2つのリストを準備します
基準となる値を1つ目のリストに、比較する値を2つ目のリストに入力してください。各要素は文字列である必要があります。この処理では空白の削除、句読点の変更、意味が同じかどうかの推測は行いません。意図しない表記差は事前に正規化してください。出力の順序と表記は1つ目のリストを基準にします。共通要素が複数回あっても、最初の位置に1回だけ出力されます。そのため、後続処理にも使いやすい安定した積集合になります。両方のリストに1つ以上の要素が必要ですが、一致がなければ結果は空になります。
完全一致または大文字小文字を無視する比較を選びます
識別子には大文字と小文字を区別するものがあるため、既定は完全一致です。この場合、「API」と「api」は別の要素です。編集用キーワードや手入力のタグなど、表記の差を無視したい場合はignore_caseを有効にしてください。この設定は内部の検索キーだけを変え、出力には1つ目のリストの表記を残します。重複も同じ規則でまとめられます。比較対象は文字列全体なので、「メール」と「メールマーケティング」は一致しません。アクセント除去、空白統一、同義語対応が必要な場合は、呼び出し前にデータを正規化してください。
データ処理で積集合を活用します
応答には積集合の配列、重複を除いた件数、各リストの元の件数、使用した比較モードが含まれます。検索担当者は予定キーワードと既存語句を比較でき、ECサイトは商品タグを許可リストと照合でき、データ処理では2つの出力ファイルの列名を比較できます。同じ入力と設定なら常に同じ順序の結果になる決定的な処理です。ネットワーク、モデル、乱数、現在時刻は使用しません。APIは1リクエストあたり$0.002で、ブラウザー版も同じ純粋な比較ロジックを利用します。
活用例
キーワードの出力結果を比較
2つの調査ツールやキャンペーン一覧に共通する語句を見つけ、SEO作業を統合できます。
タグを照合
コンテンツ管理システムと送信先プラットフォームの両方が対応するタグを特定できます。
許可リストで絞り込み
指定されたラベルや識別子のうち、承認済みテキスト一覧にも存在するものだけを残せます。
よくある質問
この処理は何を返しますか?
両方のリストにある各文字列を、list_aで最初に現れた順序と表記で1回ずつ返します。
重複する要素も含まれますか?
いいえ。結果は積集合なので、一致する値はそれぞれ1回だけ含まれます。
大文字と小文字を区別しますか?
既定では区別します。表記差を無視する場合はignore_caseをtrueに設定してください。
空白や句読点は削除されますか?
いいえ。大文字小文字を無視する設定以外は入力どおりに比較します。必要なら事前に正規化してください。
一致するものがない場合はどうなりますか?
リクエストは正常に完了し、空の積集合配列と件数0が返されます。
APIリクエストの料金はいくらですか?
APIリクエスト1回の料金は$0.002です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/list-intersection \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"list_a":["analytics","email","seo","automation"],"list_b":["seo","content","analytics"]}'const res = await fetch("https://api.kit.forhosting.com/str/list-intersection", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"list_a": [
"analytics",
"email",
"seo",
"automation"
],
"list_b": [
"seo",
"content",
"analytics"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/list-intersection",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"list_a": [
"analytics",
"email",
"seo",
"automation"
],
"list_b": [
"seo",
"content",
"analytics"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/list-intersection", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"list_a":["analytics","email","seo","automation"],"list_b":["seo","content","analytics"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"list_a":["analytics","email","seo","automation"],"list_b":["seo","content","analytics"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/list-intersection", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"list_a": [
"analytics",
"email",
"seo",
"automation"
],
"list_b": [
"seo",
"content",
"analytics"
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.list_intersection",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_items_per_list | 10000 |
max_item_chars | 4096 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |