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