Senna_Snippet �N���X

class Senna_Snippet

Senna_Snippet�N���X�́ASnippet(KWIC)���쐬����@�\��񋟂��܂��B

���̃N���X�́A�������̎w�肵���L�[���[�h�ƁA���̑O��̕������o���Ĕ������쐬���܂��B�^�O���w�肵�ăL�[���[�h���^�O�t�����邱�Ƃ��”\�ł��B


�N���X�T�v

<?php
$ss = new Senna_Snippet(
    Senna::ENC_EUC_JP, Senna_Snippet::NORMALIZE, 50, 3, '<strong>', '</strong>');

// ���o�ΏۃL�[���[�h��lj�
$ss->addKeyword('php_senna');
$ss->addKeyword('�S������', '<em>', '</em>');

// �o�^�����L�[���[�h��
echo $ss->getKeywordCount();

// snippet�̍쐬
$snippet_list = $ss->execute(
   "Senna��PHP�o�C���f�B���O�uphp_senna�v���g����\n" .
   "�I���W�i�������G���W������낤\n" .
   "�����N��php_senna�ʼn��K�S�������������C�t�I"
);

echo join(' ... ', $snippet_list), ' ... ';

// �N�G���[�����񂩂�C���X�^���X����
$ss = Senna_Snippet::createQuerySnippet(
    'php_senna +�S������ OR �o�C���f�B���O', 32,
         Senna::ENC_EUC_JP, Senna_Snippet::NORMALIZE, 50, 2, '<strong>', '</strong>')

�N���X�萔

Tokenizer�֘A

�Ώە����񂩂�Snippet���쐬����ۂ̓���Ɋւ���t���O�ł��B�����̃t���O��g�ݍ��킹�Ďw�肷��ꍇ�́A�_�� OR (|) ���Z�q�ŘA�����܂��B

  • NORMALIZE (integer)
    • ���K�����ăL�[���[�h�̌������s���܂��B
  • SKIP_LEADING_SPACES (integer)
    • �^�O�t���ΏۃL�[���[�h�̑O�ɕt���Ă���X�y�[�X���܂߂��^�O�t�����܂��BSenna-1.1.2���O�̃o�[�W�������g�p���Ă���ꍇ�A�w�肵�Ă����ʂ͂���܂���B

�uThis is senna.�v�Ƃ��������ɑ΂��ăL�[���[�h�usenna�v���^�O�t������ꍇ�̗�F

SKIP_LEADING_SPACES�t���O�Ȃ�(�ʏ�):
This is<b> senna</b>.

SKIP_LEADING_SPACES�t���O����(Senna-1.1.2�ȍ~�Ŏw��”\):
This is <b>senna</b>.

Snippet�֘A

  • MAX_RESULT_COUNT (integer)
    • ��x��execute()�ō쐬�ł���Snippet���̏��(32��)�ł��B
  • MAX_KEYWORD_COUNT (integer)
    • 1�‚�Senna_Snippet�I�u�W�F�N�g�ɒlj��”\�ȃL�[���[�h���̏��(32��)�ł��B

HTML���^�����ϊ��֘A

  • MAPPING_COMPAT (integer)
    • �A���p�T���h�u&�v���u&amp;�v�A���Ȃ�u<�v���u&lt;�v�A��Ȃ�u>�v���u&gt;�v�A�_�u���N�I�[�g�u"�v���u&quot;�v�ɕϊ����܂��B�V���O���N�I�[�g�͕ϊ����܂���Bhtmlspecialchars()�֐���ENT_COMPAT���[�h�Ɠ�������ł��B
  • MAPPING_NONE (integer)
    • HTML�̃��^������ϊ����܂���B

�N�G���[�֘A

  • DEFAULT_MAX_N_EXPRS (integer)
    • �N�G���[��������Ń^�O�t���Ώۂ̃L�[���[�h�Ƃ��Ďg�p���鉉�Z�q���̃f�t�H���g�l(32)�ł��B

�R���X�g���N�^

public void __construct(
    int $encoding, int $flags, int $width [, int $max_results
        [, string $default_open_tag [, string $default_close_tag [, mixed $mapping]]]])

�V����Snippet�쐬�p�I�u�W�F�N�g�𐶐����܂��B

�쐬����Snippet�́u�\����̕��v�́Awidth�Ŏw�肵���o�C�g���Ɏ��܂钷���ƂȂ�܂��B�\����̕��Ƃ́A�u���E�U���ɕ\������ہA���ۂɉŽ�������镶����̃o�C�g���ł��B�L�[���[�h�C���p�̃^�O���w�肵���ꍇ�A���̃^�O�̒����͊܂݂܂����B���̂��߁A�쐬����Snippet��strlen()�̒l��width�̒l�𒴂��邱�Ƃ�����܂��B���̐U���������������삩�ǂ����m�F������Ă��܂���BSenna�̃o�O�ł���”\��������܂��B

default_open_tag�����default_close_tag�́ASnippet���̃L�[���[�h�̑O�ɕt����^�O����ь��ɕt����f�t�H���g�̃^�O�ł��B�����̃^�O�́A�Ž�������ƕ\������Ȃ�������iHTML�^�O�⏑���ύX�p�G�X�P�[�v�V�[�P���X�Ȃǁj��z�肵�Ă��܂��B�Ž����ł���ʏ�̕�������܂߂��ꍇ�A�쐬����Snippet�̕\����̕���width�Ŏw�肵�������𒴂��邱�Ƃ�����܂��B

  • �p�����[�^
    • encoding - Snippet�쐬�ΏۂƂ��镶���������R�[�h
    • flags - �t���O�܂���NULL
    • width - �쐬����Snippet�̕\����̍ő啝�i�o�C�g���j
    • max_results - 1�‚̕�������쐬����Snippet�̍ő���B1����Senna_Snippet::MAX_RESULT_COUNT�܂ł̒l�B�f�t�H���g��1
    • default_open_tag - �L�[���[�h�̑O�ɕt����^�O�B�f�t�H���g�͋󕶎�
    • default_close_tag - �L�[���[�h�̌��ɕt����^�O�B�f�t�H���g�͋󕶎�
    • mapping - HTML���^�����̕ϊ����[�h
  • ��O
    • UnexpectedValueException - �ȉ��̏ꍇ
      • encoding�����Ή��������R�[�h
      • flags�Ŏw�肵���t���O���g�p�s��
      • width��1����
      • max_results��1����
    • SennaException - Snippet�쐬�p�I�u�W�F�N�g�������ł��Ȃ������ꍇ

���\�b�h

addKeyword

public Senna_Snippet addKeyword(string $keyword [, string $open_tag [, string $close_tag]])

�����Ώۂ̃L�[���[�h��lj����܂��B

�lj�����L�[���[�h�̕����񒷂́A�R���X�g���N�^�̈���width�Ŏw�肵���o�C�g���ȉ��ł���K�v������܂��B

1�‚�Senna_Snippet�I�u�W�F�N�g�ɂ́A�ő�Senna_Snippet::MAX_KEYWORD_COUNT�‚܂ł̃L�[���[�h��lj��”\�ł��B

open_tag�����close_tag�́ASnippet���̊Y���L�[���[�h�̑O�ɕt����^�O����ь��ɕt����^�O�ł��B�ȗ������ꍇ�̓R���X�g���N�^�Ŏw�肵���f�t�H���g�̃^�O���g�p���܂��B�����̃^�O�́A�Ž�������ƕ\������Ȃ�������iHTML�^�O�⏑���ύX�p�G�X�P�[�v�V�[�P���X�Ȃǁj��z�肵�Ă��܂��B�Ž����ł���ʏ�̕�������܂߂��ꍇ�A�쐬����Snippet�̕\����̕��̓R���X�g���N�^�̈���width�Ŏw�肵�������𒴂��邱�Ƃ�����܂��B

���̃��\�b�h�̓I�u�W�F�N�g���g��Ԃ��܂��̂ŁA�ȉ��̂悤�ɘA�����ă��\�b�h���ĂԂ��Ƃ��ł��܂��B

<?php
$ss = new Senna_Snippet(Senna::ENC_DEFAULT, 0, 128);
$ss->addKeyword('php_senna')
   ->addKeyword('�����G���W��', '<b>', '</b>')
   ->addKeyword('�G�N�X�e���V����', '<em>', '</em>');
  • �p�����[�^
    • keyword - �����ΏۃL�[���[�h
    • open_tag - �����ΏۃL�[���[�h�̑O�ɕt����^�O
    • close_tag - �����ΏۃL�[���[�h�̌��ɕt����^�O
  • �߂�l
    • �I�u�W�F�N�g���g
  • ��O
    • UnexpectedValueException - �ȉ��̏ꍇ
      • keyword���󕶎�
      • keyword�̒������A�R���X�g���N�^����width�Ŏw�肵���l�𒴂���
    • BadMethodCallException - �lj��”\�ȃL�[���[�h���𒴂����ꍇ
    • SennaException - �L�[���[�h���lj��ł��Ȃ������ꍇ

getKeywordCount

public int getKeywordCount()

���̃I�u�W�F�N�g�ɓo�^���̃L�[���[�h����Ԃ��܂��B

createQuerySnippet()�ɂ���Đ��������I�u�W�F�N�g�̏ꍇ�A������Ԃł�createQuerySnippet()�̑�2����max_exprs�Ŏw�肵���l��Ԃ��܂��B���̂��߁A���̒l�͓o�^����Ă�����ۂ̃L�[���[�h�������������Ƃ�����܂��BSenna�����Œlj����ꂽ�L�[���[�h�����擾������@���������߁A�b��I�ɍő�L�[���[�h����Ԃ��d�l���Ƃ��Ă��܂��B

  • �߂�l
    • �o�^���̃L�[���[�h��

execute

public array execute(string $target)

�w�肳�ꂽ�����񂩂�Snippet���쐬���A�쐬����Snippet�̔z���Ԃ��܂��B�w�肳�ꂽ��������ɃL�[���[�h��1�‚��܂܂�Ă��Ȃ��ꍇ�͋�̔z���Ԃ��܂��B

�Ԃ��z��̊e�v�f��Snippet������ł��B�v�f���́A�ő�ŃR���X�g���N�^�̈���max_results�Ŏw�肵�����ɂȂ�܂��B

  • �p�����[�^
    • target - Snippet�쐬�Ώۂ̕����̓��e
  • �߂�l
    • �쐬����Snippet�̔z��
  • ��O
    • UnexpectedValueException - target���󕶎�
    • SennaException - �ȉ��̏ꍇ
      • Snippet�̍쐬�Ɏ��s����
      • �쐬����Snippet�̏����擾�ł��Ȃ�����

createQuerySnippet

public Senna_Snippet createQuerySnippet(
    string $query_string, int $max_exprs,
        int $encoding, int $flags, int $width [, int $max_results
            [, mixed $open_tag_list [, mixed $close_tag_list [, mixed $mapping ]]]])

�w�肳�ꂽ�N�G���[�����񂩂�Senna_Snippet�I�u�W�F�N�g�𐶐����܂��B

�����Ɏg�p�����N�G���[��������A���̂܂�query_string�w�肵�Ă��������B�V�����C���X�^���X�𐶐����A�N�G���[���̉��Z�q�����߂��ăL�[���[�h��؂�o���A�����I��addKeyword()���Ăт܂��B�N�G���[���̉��Z�q�͐擪����max_exprs�‚܂ł��g�p���܂��B

�L�[���[�h�C���p�̃^�Oopen_tag_list�����close_tag_list�́A������܂��͕�����̔z����w�肵�Ă��������B

�^�O�𕶎���Ƃ��Ďw�肵���ꍇ�́A�S�ẴL�[���[�h���w�肵��������Ń^�O�t�����܂��B

�^�O��z��Ƃ��Ďw�肵���ꍇ�́A�e�z��̗v�f�����ԂɎ��o���ăL�[���[�h�C���p�^�O�Ƃ��Ďg�p���܂��B���̂Ƃ��A�^�O�z��̐擪�̗v�f�̓N�G���[���̐擪�̃L�[���[�h�p�̃^�O�ɂȂ�A2�Ԗڂ̗v�f��2�Ԗڂ̃L�[���[�h�p�̃^�O�ɂȂ�܂��B�������A�z��̗v�f�����N�G���[���̃L�[���[�h���������Ȃ��ꍇ�́A�擪�̗v�f�ɖ߂��čĂя��ԂɎg�p���܂��B���ꂼ��̔z��͗v�f������v���Ă��Ȃ���΂Ȃ�܂���B

���̑��̈����Ɋւ��ẮA�R���X�g���N�^�̍��ڂ��Q�Ƃ��Ă��������B�Ȃ��A���̃��\�b�h�Ő��������C���X�^���X�̃f�t�H���g�^�O�͋󕶎��ł��BaddKeyword()�ŃL�[���[�h��lj�����ꍇ�͕K�v�ɉ����ă^�O���w�肵�Ă��������B

  • �p�����[�^
    • query_string - �N�G���[������
    • max_exprs - �N�G�����Ŏg�p���鉉�Z�q���̏��
    • encoding - Snippet�쐬�ΏۂƂ��镶���������R�[�h
    • flags - �t���O�܂���NULL
    • width - �쐬����Snippet�̕\����̍ő啝�i�o�C�g���j
    • max_results - 1�‚̕�������쐬����Snippet�̍ő���B1����Senna_Snippet::MAX_RESULT_COUNT�܂ł̒l�B�f�t�H���g��1
    • default_open_tag - �L�[���[�h�̑O�ɕt����^�O�B�f�t�H���g�͋󕶎�
    • default_close_tag - �L�[���[�h�̌��ɕt����^�O�B�f�t�H���g�͋󕶎�
    • mapping - HTML���^�����̕ϊ����[�h
  • �߂�l
    • �w�肵���N�G���[��������̃L�[���[�h�𒊏o�ΏۂƂ���Senna_Snippet�I�u�W�F�N�g
  • ��O
    • UnexpectedValueException - �ȉ��̏ꍇ
      • query_string���󕶎�
      • (max_exprs < 1)�܂���(Senna_Snippet::MAX_KEYWORD_COUNT < max_exprs)
      • open_tag_list��close_tag_list�̗v�f�����Ⴄ
      • encoding�����Ή��������R�[�h
      • flags�Ŏw�肵���t���O���g�p�s��
      • width��1����
      • max_results��1����
    • SennaException - Snippet�쐬�p�I�u�W�F�N�g�������ł��Ȃ������ꍇ

�ŏI�X�V�F2008/03/31 09:53