tear / sphinxsearch-bundle
该软件包已被废弃且不再维护。未建议替代软件包。
Sphinx 搜索包 for Symfony 2
1.1.0
2012-09-08 05:32 UTC
Requires
- php: >=5.3.3
This package is auto-updated.
Last update: 2020-08-04 13:04:40 UTC
README
Sphinx 搜索包 for Symfony 2
安装
##引入供应商库
这可以通过两种不同的方式完成
第一种方法 : 使用 Composer (推荐)
// composer.json
"require": {
"php": ">=5.3.2",
// ...
"tear/sphinxsearch-bundle": "dev-master",
// ...
}
第二种方法 : git 命令
git submodule add git://github.com/leonnleite/Tear-SphinxsearchBundle.git vendor/tear/sphinxsearch-bundle
配置
// app/config/config.yml
sphinxsearch:
indexes:
indexName: %sphinxsearch_index_indexName%
indexNameTwo: %sphinxsearch_index_indexNameTwo%
searchd:
host: %sphinxsearch_host%
port: %sphinxsearch_port%
socket: %sphinxsearch_socket%
indexer:
bin: %sphinxsearch_indexer_bin%
至少必须定义一个索引,您也可以定义任意多个。
在上面的示例配置中,indexName
用作索引 %sphinxsearch_index_indexName%
的标签,该索引在您的 sphinxsearch.conf
中定义。
这允许您在代码中避免硬编码原始索引名称。
用法示例
最基本的搜索,例如使用上述配置,将是
$indexesToSearch = array( 'Items' => array(), 'Categories' => array(), ); $sphinxSearch = $this->get('search.sphinxsearch.search'); $searchResults = $sphinxSearch->search('search query', $indexesToSearch);
这将针对标签为 Items
和 Categories
的索引进行搜索 search query
,搜索结果将存储在 $searchResults['Items']
和 $searchResults['Categories']
中。
您还可以进行更复杂的搜索,例如
$indexesToSearch = array( 'Items' => array( 'result_offset' => 0, 'result_limit' => 25, 'field_weights' => array( 'Name' => 2, 'SKU' => 3, ), ), 'Categories' => array( 'result_offset' => 0, 'result_limit' => 10, ), ); $sphinxSearch = $this->get('search.sphinxsearch.search'); $sphinxSearch->setMatchMode(SPH_MATCH_EXTENDED2); $sphinxSearch->setFilter('disabled', array(1), true); $searchResults = $sphinxSearch->search('search query', $indexesToSearch);
这将在 Items
和 Categories
中再次搜索 search query
,但现在 Items
将返回最多前 25 个匹配项,并将 Name
和 SKU
字段的权重高于正常水平,而 Categories
将返回最多前 10 个。请注意,为了定义 result_offset
或 result_limit
,您必须明确定义这两个值。此外,此搜索将使用 扩展查询语法,并排除所有将 disabled
属性设置为 1 的结果。
Copyright (c) 2012, Ryan Rogers
All rights reserved.