Senna_Records_Row クラス
class Senna_Records_Row implements ArrayAccess
Senna_Records_Rowクラスは、検索結果の1つのレコードを表現するクラスです。文書IDやスコア情報等へのアクセス手段を提供します。
このクラスはPHPコード側からインスタンス化できません。エクステンション内部で生成します。
- クラス概要
- クラス定数
- コンストラクタ
- メソッド
- インスタンスメソッド
getKey()getKeySize()getPosition()getScore()getSection()getSubRecordCount()getSubRecords()
- インスタンスメソッド
クラス概要
<?php
$i = Senna_Index::open('/path/to/index');
$records = $i->query('楽しい 全文検索');
// 検索結果の各レコードの情報を取得
foreach ($records as $row) {
// メソッド形式
printf(
"ID = %s, len = %d, score = %d, section = %d, pos = %d, subrecs = %d\n",
$row->getKey(), // 文書IDを取得
$row->getKeySize(), // 文書ID長を取得
$row->getScore(), // スコアを取得
$row->getSection(), // 段落番号を取得
$row->getPosition(),// 出現位置を取得
$row->getSubRecordCount() // 格納しているサブレコード数を取得
);
// ハッシュ形式
printf(
"ID = %s, len = %d, score = %d, section = %d, pos = %d, subrecs = %d\n",
$row['key'],
$row['keysize'],
$row['score'],
$row['section'],
$row['position'],
$row['subRecordCount'] // ハッシュキーの大文字小文字は区別しない
);
}
// Senna_Records::slice()はSenna_Records_Rowの配列を返す
$page1 = $records->slice(0, 10);
foreach ($page1 as $row) {
echo $row->getKey();
}
// サブレコード情報も取得
$records = new Senna_Records($i, Senna_Records::DOCUMENT, Senna_Records::SECTION, 20);
$records->add('楽しい 全文検索');
foreach ($records as $row) {
echo $row->getKey(), "\n";
// 格納しているサブレコード情報を表示。$subRowもSenna_Records_Rowオブジェクト
$subRecords = $row->getSubRecords();
foreach ($subRecords as $subRow) {
printf("\tsection: %d, score = %d\n", $subRow->getSection(), $subRow->getScore());
}
}
クラス定数
このクラスは定数を定義していません。
コンストラクタ
PHPコード側でインスタンスを生成することはできません。インスタンスは、Senna_RecordsやSenna_Records_SubRecordsからレコードを取得する際にエクステンション内部で生成します。
getKey
public string getKey()
このレコードの文書IDを返します。
ハッシュ形式でのアクセスにも対応しています。$row['key'];は$row->getKey();のエイリアスになります。ハッシュキーの大文字小文字は区別しません。
- 戻り値
- 文書ID
getKeySize
public int getKeySize()
このレコードの文書IDの長さをバイト数で返します。
文書IDがNULL終端の可変長文字列であれば末尾のNULLを含めた長さを返します。すなわち、strlen() + 1の長さになります。
ハッシュ形式でのアクセスにも対応しています。$row['keysize'];は$row->getKeySize();のエイリアスになります。ハッシュキーの大文字小文字は区別しません。
- 戻り値
- 文書IDの長さ(バイト数)
getScore
public int getScore()
このレコードのスコアを返します。
ハッシュ形式でのアクセスにも対応しています。$row['score'];は$row->getScore();のエイリアスになります。ハッシュキーの大文字小文字は区別しません。
- 戻り値
- スコア
getSection
public int getSection()
このレコードの段落番号を返します。
このメソッドを使うことで、文書内の何番目の段落でマッチしたかを調べることができます。段落単位で検索するためには、Senna_Recordsのコンストラクタで検索単位またはサブレコード単位にSenna_Records::SECTIONを指定してください。
ハッシュ形式でのアクセスにも対応しています。$row['section'];は$row->getSection();のエイリアスになります。ハッシュキーの大文字小文字は区別しません。
- 戻り値
- 段落番号
getPosition
public int getPosition()
このレコードの出現位置を返します。
このメソッドを使うことで、検索キーワードが何番目のトークンにマッチしたかを調べることができます。出現位置単位で検索するためには、Senna_Recordsのコンストラクタで検索単位またはサブレコード単位にSenna_Records::POSITIONを指定してください。
ハッシュ形式でのアクセスにも対応しています。$row['position'];は$row->getPosition();のエイリアスになります。ハッシュキーの大文字小文字は区別しません。
- 戻り値
- 出現位置
getSubRecordCount
public int getSubRecordCount
このレコードが格納しているサブレコード数を返します。
各レコードにサブレコード情報を持たせるためには、Senna_Recordsのコンストラクタでサブレコード単位にSenna_Records::SECTIONまたはSenna_Records::POSITIONを指定してください。
ハッシュ形式でのアクセスにも対応しています。$row['subRecordCount'];は$row->getSubRecordCount();のエイリアスになります。ハッシュキーの大文字小文字は区別しません。
- 戻り値
- 格納しているサブレコード数
getSubRecords
public Senna_Records_SubRecords getSubRecords()
このレコードが格納しているサブレコード情報を返します。
ハッシュ形式でのアクセスにも対応しています。$row['subRecords'];は$row->getSubRecords();のエイリアスになります。ハッシュキーの大文字小文字は区別しません。
- 戻り値
- サブレコード情報
- 関連項目
最終更新:2008/03/30 11:03