キーワード検索と意味検索を同時に使う
この機能は、文字の一致を見るキーワード検索と、意味の近さで比較する意味検索を同時に行い、両方の結果を組み合わせて返します。型番や専門用語のような固有の表現にも強くなります。
オンラインで実行
アカウントでログインし、当社のサーバー上で実行します。無料ツールはブラウザ内で動作しますが、これは上記の料金がKIT残高から差し引かれます。
意味検索だけでは拾いきれない表現がある
意味検索は言い換えに強い一方、型番や製品コード、固有名詞のような一字一句が重要な表現では、キーワード検索のほうが確実に一致します。「RX-200」のような型番を意味検索だけに任せると、似た文字列に引っ張られて結果が安定しないことがあります。
2つの検索結果を組み合わせて返す
この機能はキーワード検索の結果と意味検索の結果をそれぞれ計算し、関連度を踏まえて1つの結果として組み合わせます。呼び出す側は検索方式を意識せず、1回のリクエストで両方の強みを受け取れます。
向いている場面
製品型番や規格名を含む技術文書、法令番号を含む規程集など、固有の表記と自然な言い回しの両方が混在するデータで効果を発揮します。一般的な文章だけの検索であれば、意味検索単体でも十分な場合があります。
料金と使い方
基本料金$0.002と検索1回あたり$0.0015を合わせて、1回の検索が$0.0035です。意味検索と同じ価格で、キーワード検索の分の追加料金はかかりません。
活用例
製品型番を含む技術資料の検索
メーカーのサポート部門が、型番と自然文が混在する技術資料の検索にこの機能を使い、型番の取りこぼしを減らしています。
法令番号を含む規程集の検索
総務担当者が、条文番号と一般的な言い回しの両方で検索されても対応できるよう、規程集の検索に組み込んでいます。
型式番号を含む部品カタログの検索
部品商社が、部品番号と用途の説明が混在するカタログの検索にこの機能を使っています。
よくある質問
意味検索とどちらを使えばよいですか?
型番や固有名詞のような一致が重要な表現が多い場合はこちらが向いています。自然な文章だけであれば意味検索でも十分です。
料金は意味検索より高くなりますか?
同じ価格です。基本$0.002+$0.0015、1回の検索$0.0035です。
キーワード検索の一致条件は指定できますか?
完全一致に近い形で文字列を照合します。詳細な条件指定はAPI側のパラメータで行います。
検索対象のデータはどう用意しますか?
索引化されたテキストや文書が対象です。索引の作成は別の機能で行います。
どちらの検索結果が優先されますか?
両方の関連度を踏まえて1つの結果に組み合わせます。片方だけを優先する設定ではありません。
検索対象のデータ量に上限はありますか?
1つの索引は最大10,000チャンクまでです。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/search/hybrid \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/search/hybrid", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/search/hybrid",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/search/hybrid", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/search/hybrid", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"input": "…"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "search.hybrid",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chunks | 10000 |
max_tokens | 20000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |