sulu / search-bundle
0.4.0
2014-10-29 17:29 UTC
Requires
- massive/search-bundle: 0.3.*
- sulu/sulu: 0.9.*
Requires (Dev)
- massive/build-bundle: 0.2.*
- sulu/test-bundle: 0.9.*
- zendframework/zend-stdlib: ~2.3
- zendframework/zendsearch: @dev
Suggests
- zendframework/zend-stdlib: Needed (as in require dev) in addition to zendsearch
- zendframework/zendsearch: To use the PHP based Zend Search library (based on Lucene)
This package is not auto-updated.
Last update: 2016-03-10 09:13:12 UTC
README
此包是 Sulu 内容管理框架 Sulu Content Management Framework 的一部分,并使用 MIT 许可证。
SuluSearchBundle 扩展了 MassiveSearchBundle,为 Sulu 结构类提供元数据驱动程序。这使得 Sulu 内容可以被索引。
使用方法
此包将 MassiveSearchBundle 集成到 Sulu 中。有关一般使用信息,请参阅该包的文档。
映射结构文档
您可以在结构模板中将搜索索引映射到结构文档上
<?xml version="1.0" ?>
<template xmlns="http://schemas.sulu.io/template/template"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schemas.sulu.io/template/template http://schemas.sulu.io/template/template-1.0.xsd">
<!-- ... -->
<properties>
<property name="title" type="text_line" mandatory="true">
<!-- ... -->
<tag name="sulu.search.field" index="true" type="string" role="title" />
<!-- ... -->
</property>
</properties>
</template>
属性中的 tag 是搜索索引器的提示。它将以 "字符串" 类型索引字段,并使用此字段作为搜索结果的 "标题"。
角色
当您标记结构属性时,您可以可选地分配角色。角色告诉搜索引擎哪些字段应通过各种标准获取器在文档中可用
title: 搜索结果的标题:$document->getTitle()description: 搜索结果的描述/摘录:$document->getDescription()image: 指示一个用于确定图像 URL 的字段:$document->getImageUrl()
注意:如果您正在使用 SuluMediaBundle,您可以指定媒体字段作为图像字段。
索引结构文档
您可以使用 MassiveSearchBundle 将结构文档索引为任何其他对象
// we get a structure from somewhere..
$yourStructure = $magicalStructureService->getStructure();
$searchManager = $container->get('massive_search.search_manager');
$searchManager->index($yourStructure);
搜索
同样,搜索与 massive search bundle 完全相同
// we get a structure from somewhere..
$searchManager = $container->get('massive_search.search_manager');
$searchManager->createSearch('This is a search string')->locale('de')->index('content')->execute();
从命令行搜索
请参阅 MassiveSearchBundle 文档。
渲染结果
您可以遍历搜索结果并检索相关的搜索文档。URL 将是结构 URL(自动确定)。
{% for hit in hits %}
<section>
<h3><a href="{{ hit.document.url }}">{{ hit.document.title }}</a></h3>
<p><i>Class: {{ hit.document.class }}</i></p>
<p>{{ hit.document.description }}</p>
<p><img src="{{ hit.document.imageUrl }}" /></p>
</section>
{% endfor %}
要求
- Symfony: 2.3.*
- 请参阅 composer.json 中的要求部分。