【问题标题】:Full text database search and attachments on file system文件系统上的全文数据库搜索和附件
【发布时间】:2014-02-18 23:50:20
【问题描述】:
我已经使用 Symfony 2 框架开发了一个 php 应用程序,现在我想在我的应用程序中实现全文搜索,它是一个遵循基于用户的 acl 规则的业务应用程序等等。在我的应用程序中,我创建了文档,下面是更多详细信息:
当有人搜索时,我的全文功能非常简单,我需要做的就是在表中搜索数据,我可以使用 SQL 搜索来实现,但我还需要搜索与文档关联的附件(表单数据) .有人可以建议我可以使用什么来实现搜索功能,或者如果有人有经验,是否可以提供一些链接或示例。谢谢。
【问题讨论】:
标签:
symfony
symfony-2.1
symfony-2.3
【解决方案1】:
我能够通过以下方式解决这个问题,首先在 config.yml 中创建了一个映射,如图所示
# Elastica Configuration
fos_elastica:
clients:
default: { host: localhost, port: 9200 }
indexes:
website:
client: default
index_name: docova
types:
documents:
mappings:
Doc_Title: ~
Description: ~
Attachments:
type: "object"
properties:
File_Name:
content:
type: attachment
persistence:
driver: orm
model: Docova\DocovaBundle\Entity\Documents
provider: ~
listener: ~
finder: ~
然后我需要对其中一个实体进行更改,以将附件作为二进制内容返回给弹性搜索,如下所示:
return file_get_contents($this->file_path . DIRECTORY_SEPARATOR . $this->getDocument()->getId() . DIRECTORY_SEPARATOR . md5($this->File_Name), 'r');
这为我解决了。