Zend搜索集成在本地PHP项目


Zend search integration in native PHP project

我想将zend搜索集成到本地PHP项目中。我得到了各种各样的include错误。

我做了一些研究,似乎有很多关于它的旧文章写在zf2之前。对于zf1,它以前是直接的。包括lucene.php,就是这样。

然而,自从zf2发布以来,搜索组件不再是zf2框架的一部分,可以单独下载。当我包含Lucene.php时,脚本开始抱怨缺少类。(包括问题)

我应该包括所有的文件还是应该使用某种自动加载器?

您可以使用Composer来安装单独的ZF2包,它将为您处理任何自动加载和依赖项。

https://github.com/zendframework/ZendSearch

你可以看到它也需要

zendframework/zend-stdlib

下载存储库,然后使用composer安装,这也会为你获取依赖项,并设置自动加载。

php composer.phar install

首先确保安装了以下内容:

  • curl(确保您已将curl添加到路径环境中变量)

确保命令行使用的php.ini中已经启用了openssl。(对于那些在windows上使用wamp的人,有两个php ini文件。一个用于apache,另一个用于命令行。)

启动命令行并使用CD命令进入您解压缩zend search的目录,并运行以下两个命令

curl -s h**ps://getcomposer.org/installer | php

php作曲家。phar安装

在同一目录下创建一个PHP文件,并包含.vendor/autolload . PHP

创建一个自动加载函数来加载不同的库。目前,我写了一些简单的东西,如下所示:

<

函数strong>自动装载($ classname){
$path = __DIR。DS。"图书馆"。$ classname。"。php";

如果(file_exists(路径)美元){require_once(路径)美元;
}}

如果您知道不同的类的名称空间,则应该加载它们。这是基本的自动装弹器,不应该使用。

我一直在使用下面的指南,但是它已经过时了,因为类的名称已经被修改为如下所示:

$indexPath = 'C:'wamp'www'storage';美元指数=Lucene ZendSearch ' ' Lucene:创建(indexPath美元);

$doc = new ZendSearch'Lucene'Document();

$ doc -> addField (ZendSearch ' Lucene文档' '字段::去("url",取消建立索引docUrl美元));$ doc -> addField (ZendSearch ' Lucene文档' '字段::去("创建",取消建立索引docCreated美元));$ doc -> addField (ZendSearch ' Lucene文档' '字段::去("急转弯",取消建立索引docTeaser美元));$ doc -> addField (ZendSearch ' Lucene文档' '字段:文本("标题",docTitle)美元);$ doc -> addField (ZendSearch ' Lucene文档' '字段:文本("作者",docAuthor美元));$ doc -> addField (ZendSearch ' Lucene文档' '字段:未载入史册("内容",

docBody美元));

美元指数——> addDocument ($ doc);美元指数——> commit ();