3

Zend Framework 2 の ZendSearch は、Zend Framework 1.12 の Zend Search Lucene と似ていることを知っています。CodeIgniter 2.1.3 で Zend Search Lucene を使用しようとしました。インデックス作成と検索のプロセスはうまく機能しますが、それでも次のようなエラー (警告) が表示されます。

Warning: include(application/errors/error_php.php) [function.include]: failed to open stream: No such file or directory in C:\path\to\system\core\Exceptions.php on line 182
Warning: include() [function.include]: Failed opening 'application/errors/error_php.php' for inclusion (include_path='.;C:\php5\pear;application/libraries') in C:\path\to\system\core\Exceptions.php on line 182
Fatal error: require_once() [function.require]: Failed opening required 'Zend/Search/Lucene/Storage/File/Filesystem.php' (include_path='.;C:\php5\pear;application/libraries') in C:\path\to\application\libraries\Zend\Search\Lucene\Storage\Directory\Filesystem.php on line 349

codeigniter アプリケーションで Zend Search Lucene ライブラリを使用しようとすると、この記事に従うとエラーが表示されます。この記事と Zend Search Lucene は、codeigniter 2.1.3 で使用する場合、まだ有効であるとは思えず、ZendSearch を使用したいと考えています。

では、CodeIgniter 2.1.3 で ZendSearch を使用するにはどうすればよいでしょうか?

4

1 に答える 1

4

Codeigniter 用の Zend Search Lucene ライブラリがあります。

Lucene 検索の場合、最初にインデックスを作成し、次に実際の検索操作が実行されるインデックス ドキュメントを作成する必要があります。

$index = Zend_Search_Lucene::create($CI->base_index_path . '/index_folder');

$doc = new Zend_Search_Lucene_Document(); 

次に、DB テーブルから次のようなフィールドを追加します。

$doc->addField(Zend_Search_Lucene_Field::Keyword('id', $object->id));

$index->addDocument($doc);

そして最後に以下のように使用するの$qは、このインデックスで検索する検索パラメーターです。

$data['query'] = $q;
$query = "name:\"" . $q . "\" or full_desc:\"" . $q . "\"";
$query_result = $index->find($query);
于 2013-09-05T11:28:50.600 に答える