blackbit_digital_commerce / pimcore-better-search
Pimcore后端搜索的即时替代品
This package is auto-updated.
Last update: 2024-08-29 10:33:58 UTC
README
为了高效的数据维护,必须有一个高效搜索。此包是Pimcore默认后端搜索的即时替代品。它提供了一种类似于用户从流行的网络搜索引擎所熟知的搜索体验。
它不需要任何配置或安装外部应用程序。
Pimcore内置搜索功能的问题
Pimcore提供以下对象搜索:
- 全局搜索
- 关系字段搜索(通过查找玻璃图标)
- 网格搜索
所有这些地方都使用相同的底层搜索引擎,因此也存在相同的问题
- 默认情况下(没有MySQL的搜索操作符),仅支持单词搜索
- 例如,搜索
product
不会找到仅包含products
的数据对象
- 例如,搜索
- 小于3个字符的术语被忽略(使用MySQL的默认
innodb_ft_min_token_size
设置)- 例如,搜索
CD
将永远不会找到任何东西
- 例如,搜索
- 没有模糊搜索,这容忍了拼写错误
- 例如,搜索
produt
不会找到product
- 例如,搜索
- 没有词干提取
- 例如,搜索
shirts
(复数)将不会找到包含shirt
的对象
- 例如,搜索
- 有时搜索结果的顺序令人烦恼
- 例如,只包含搜索词一次的元素会被列在包含多次的元素之上
- 搜索对于没有单词分隔符的语言(如中文、日语)不可用
插件做了哪些不同的事情?
此包使用 TNT Search 作为底层库。此库解决了上述所有问题,因为它
- 支持前缀和后缀搜索
- 支持任何长度的单词
- 实现模糊/容错搜索
- 实现多种语言的词干提取
- 实现 TF/IDF算法 以更好地排序搜索结果
- 实现n-gram搜索
- 用于使用没有单词分隔符的语言(如中文/日语)
插件作为Pimcore搜索功能的即时替代品工作:在用户界面中,一切都将与默认Pimcore相同。只是底层的索引和搜索逻辑被改变。
SQL模式
您还可以通过在查询前添加一个 /
来添加SQL过滤条件,例如 /SKU IN (1234,2345,3456)
将返回恰好3个指定的项目。对于网格搜索,此功能在Pimcore 10之前可用,但对于关系搜索则从未可用。使用此功能,很容易向关系添加多个项目。
对于Pimcore >= 11,这也恢复了网格中的SQL过滤器。
安装
Composer
要获取插件代码,您必须 购买插件 或发送电子邮件至 info@blackbit.de。
您可以获取插件包的Bitbucket代码仓库,或者以zip文件的形式获取插件代码。访问Bitbucket代码仓库的优势在于,您将始终在拉取请求中看到插件的变化,并能够自行更新到新版本。如果您对此感兴趣,请访问此页面。如果感兴趣,请发送您的Bitbucket账户邮箱地址,以便我们允许访问代码仓库。
当我们允许您的账户访问我们的代码仓库时,请将代码仓库添加到Pimcore根目录下的composer.json
文件中(参见Composer代码仓库)。
"repositories": [ { "type": "vcs", "url": "git@bitbucket.org:blackbitwerbung/pimcore-plugins-better-search" } ]
(为此,请将您的公钥添加到您的Bitbucket账户)
如果您以zip文件的形式收到了插件代码,请将zip文件上传到您的服务器上——例如,在Pimcore根目录下创建一个名为bundles
的文件夹,并将其添加到您的composer.json
文件中。
"repositories": [ { "type": "artifact", "url": "./bundles/" } ]
请注意,当您直接将zip文件放在Pimcore根目录下,并添加"url": "./"
时,它仍然可以工作,但Composer将递归地扫描Pimcore根目录下的所有文件(包括资产、版本等)以找到包zip文件,这将花费很长时间。
然后,您应该能够从CLI执行composer require blackbit/better-search
(如果您已经安装了这个包,可以使用composer update blackbit/better-search --with-dependencies
进行更新)。
最后,您需要通过浏览器UI或CLI(bin/console pimcore:bundle:enable BlackbitBetterSearchBundle && bin/console pimcore:bundle:install BlackbitBetterSearchBundle
)启用并安装插件。
您可以通过CLI执行composer update blackbit/better-search --with-dependencies
来始终获取最新版本。
重新创建搜索索引
默认情况下,在安装过程中将启动一个后台进程,该进程将索引所有现有Pimcore元素的数据库。
每次元素被保存时,搜索索引都会更新(与Pimcore默认操作方式相同)。
要手动重新创建搜索索引,您可以执行CLI命令bin/console better-search:create-index
。