キーワード検索における KWIC オプションについて
キーワード検索の際、レスポンスに KWIC (KeyWord In Context) テキストを含ませる事が出来るオプション機能に関する説明です。この機能は AB-ROAD 海外旅行検索 API 等、特定の API にて使用可能です (各 API リファレンスにて記載あり)。
概要
KWIC とは
KeyWord In Context
の略称で、キーワード検索を行った際、そのキーワードが検索結果中のどの箇所にヒットしたのかを示す為の以下のようなテキストの事を指します:
例: キーワード「世界遺産」で検索 → 検索結果1件目
『東京発 アンコールワット 8日間』
...世界遺産専門デスク エイチ・アイ・エスで行く! とことん遺跡にこだわった遺跡三昧!アンコールワット 5日間 ~密林に佇む荘厳な世界遺産~...... 全食事付き 世界遺産 遺跡 全朝食付 ◆5日間でくまなくアンコールワット遺跡を見学。 ◆2日目アンコールトム遺跡をくまなく観光。通常半日で終わ...
ええ、GoogleやYahoo!等検索エンジンの検索結果ページに良く見られるあの部分です。
リクルート Web サービスでは、各 API リファレンスの「検索クエリ項目 > フリーワード」の項に KWIC 対応の旨が記載されている API に限り、このような KWIC テキストを API レスポンスに含ませる事ができます。
指定方法
対応している API ならば、以下の指定によって KWIC オプションが有効になります。
- 検索クエリ keyword を指定している
- さらに検索クエリ項目 kwic に値 1 を指定する
以下、AB-ROAD 海外旅行検索 API にフリーワード「世界遺産」検索 + KWIC オプション指定をしたサンプルリクエストURL:
http://webservice.recruit.co.jp/ab-road/tour/v1?key=sample&keyword=世界遺産&kwic=1
API レスポンス
上記クエリ指定によりレスポンス XML や JSON 中の各検索結果レコード毎に KWIC コンテンツが追加されます。どのノード位置に KWIC コンテンツが追加されるのかは、各 API 毎に異なりますのでそれぞれの API リファレンスを参照してください。例として AB-ROAD 海外旅行検索 API の KWIC レスポンスは以下のノード位置に追加されます。
results.tour[0].kwic = '... 密林に佇む荘厳な <span class="kwic">世界遺産</span> であるアンコールワット遺跡を見学。...'
同様に results.tour の2つめ以降のレコードすべてに kwic コンテンツが追加されます。
results.tour[1].kwic = '... 略 ...' results.tour[2].kwic = '... 略 ...' results.tour[n].kwic = '... 略 ...'
KWIC コンテンツ
上記例のように、KWIC コンテンツは
- 前後が ... で囲まれていて
- かつ検索フリーワード部分が <span class="kwic"></span> タグで囲まれている
というフォーマットになっています。
拡張オプション
検索クエリ項目 kwic に値 1 を指定する事により KWIC コンテンツが有効になりますが、
- 同項目に
- 半角カンマ区切りで
値を追加指定していく事によりさまざまなオプション指定をする事が可能です。
kwic=1 | kwic レスポンスを有効にする |
kwic=1,100 | かつ kwic テキストブロックのサイズを 100 byte にする (max 500 byte まで / default 80 byte) |
kwic=1,100,4 | テキスト 100 byte かつワードが含まれているブロックを最大 4 つまで含む (max 5 つ / default 2) |
kwic=1,100,4,q | かつ該当ワードを囲む span タグの class をデフォルトの "kwic" では無く <span class="q"></span> に変える |
なので最大指定 kwic=1,500,5 で1つ1つのレスポンスアイテムに対して 2.5K 程のサイズの kwic テキストを含ませる事が出来ます。 逆に kwic=1,50,1 とする事でごくごく小さなサイズの kwic テキストにする事も可。
あるオプションはデフォルトのままにしたい
2 - 3 つ目の値に「空 (default)」を指定したい際は文字列 null を使って下さい。
e.g. kwic 有効 + テキストブロックサイズはデフォルト 80 bytes + ブロック数は3つ
kwic=1,null,3
クエリサンプル
kwic=1
...発 (東京発) H.I.S 世界遺産 専門デスク 株式会社エイ......界遺産専門デスク ☆★☆ 世界遺産 をサファリ☆★☆ ケニ...
...発 (東京発) H.I.S<span class="kwic">世界遺産</span>専門デスク 株式会社エイ......界遺産専門デスク ☆★☆<span class="kwic">世界遺産</span>をサファリ☆★☆ ケニ...
kwic=1,160
...発) H.I.S 世界遺産 専門デスク 株式会社エイチ・アイ・エス 世界遺産 専門デスク ☆★☆ 世界遺産 をサファリ☆★......ア&タンザニア7日間 全食事付き 世界遺産 国立公園 大自然 動物 羽田発 ◆ 世界遺産 『ンゴロンゴロ』含め3つの国立公...
...発) H.I.S<span class="kwic">世界遺産</span>専門デスク 株式会社エイチ・アイ・エス <span class="kwic">世界遺産</span>専門デスク ☆★☆<span class="kwic">世界遺産</span>をサファリ☆★......ア&タンザニア7日間 全食事付き <span class="kwic">世界遺産</span> 国立公園 大自然 動物 羽田発 ◆<span class="kwic">世界遺産</span>『ンゴロンゴロ』含め3つの国立公...
kwic=1,160,4
...発) H.I.S 世界遺産 専門デスク 株式会社エイチ・アイ・エス 世界遺産 専門デスク ☆★☆ 世界遺産 をサファリ☆★......ア&タンザニア7日間 全食事付き 世界遺産 国立公園 大自然 動物 羽田発 ◆ 世界遺産 『ンゴロンゴロ』含め3つの国立公...... 午前:4WDにてンゴロンゴロへ(約60km/約1.5時間) ☆★☆ 世界遺産 ☆★☆「ンゴロンゴロ国立公園」ゲームドライブ 午後...
...発) H.I.S<span class="kwic">世界遺産</span>専門デスク 株式会社エイチ・アイ・エス <span class="kwic">世界遺産</span>専門デスク ☆★☆<span class="kwic">世界遺産</span>をサファリ☆★......ア&タンザニア7日間 全食事付き <span class="kwic">世界遺産</span> 国立公園 大自然 動物 羽田発 ◆<span class="kwic">世界遺産</span>『ンゴロンゴロ』含め3つの国立公...... 午前:4WDにてンゴロンゴロへ(約60km/約1.5時間) ☆★☆<span class="kwic">世界遺産</span>☆★☆「ンゴロンゴロ国立公園」ゲームドライブ 午後...
kwic=1,160,4,q
...発) H.I.S 世界遺産 専門デスク 株式会社エイチ・アイ・エス 世界遺産 専門デスク ☆★☆ 世界遺産 をサファリ☆★......ア&タンザニア7日間 全食事付き 世界遺産 国立公園 大自然 動物 羽田発 ◆ 世界遺産 『ンゴロンゴロ』含め3つの国立公...... 午前:4WDにてンゴロンゴロへ(約60km/約1.5時間) ☆★☆ 世界遺産 ☆★☆「ンゴロンゴロ国立公園」ゲームドライブ 午後...
...発) H.I.S<span class="q">世界遺産</span>専門デスク 株式会社エイチ・アイ・エス <span class="q">世界遺産</span>専門デスク ☆★☆<span class="q">世界遺産</span>をサファリ☆★......ア&タンザニア7日間 全食事付き <span class="q">世界遺産</span> 国立公園 大自然 動物 羽田発 ◆<span class="q">世界遺産</span>『ンゴロンゴロ』含め3つの国立公...... 午前:4WDにてンゴロンゴロへ(約60km/約1.5時間) ☆★☆<span class="q">世界遺産</span>☆★☆「ンゴロンゴロ国立公園」ゲームドライブ 午後...
kwic=1,null,null,hoge
...発 (東京発) H.I.S 世界遺産 専門デスク 株式会社エイ......界遺産専門デスク ☆★☆ 世界遺産 をサファリ☆★☆ ケニ...
...発 (東京発) H.I.S<span class="hoge">世界遺産</span>専門デスク 株式会社エイ......界遺産専門デスク ☆★☆<span class="hoge">世界遺産</span>をサファリ☆★☆ ケニ...