venveo / craft-documentsearch
提取文本文档内容并添加到Craft的搜索索引中
Requires
- php: ^8.0.2
- ext-dom: *
- ext-libxml: *
- ext-zip: *
- craftcms/cms: ^4.0.0
- spatie/pdf-to-text: ^1.1
- voku/stop-words: ^2.0
- yooper/php-text-analysis: ^1.4
This package is auto-updated.
Last update: 2024-09-12 04:28:47 UTC
README
从PDF文档中提取关键词和短语并将其添加到Craft CMS的本地搜索索引中。
注意:请在购买前试用并确保此插件符合您的需求。您可能不会得到您期望的结果!某些文档类型并不一定适合此过程。
注意:如果您正在寻找全文文档搜索解决方案,这可能不是您想要的。此插件的目的在于将大文档简化为数据库可消费的大小。如果全文可以放入搜索索引中,它将被插入;否则,我们将解析常见n-gram。
工作原理
文档搜索旨在增强现有的Craft CMS搜索索引。为此,我们希望避免用大量数据污染它,因此我们将仅提取最重要的部分。然而,如果PDF的内容适合搜索索引,它将以未修改的形式存储。
当PDF作为资产保存且配置为可搜索时,将通过pdftotext可执行文件提取文本内容。首先,此内容将被清理和归一化,并移除“停用词”。停用词基本上是无用的词,如“和”。停用词根据资产的区域语言选择(如有必要,将回退到英语)。然后,此内容将被处理成前30(每种30个)1-gram、2-gram和3-gram。在这种情况下,1-gram将简单地是出现频率最高的词。两个和三个gram将有助于优先考虑精确短语匹配。例如,处理“cats”的维基百科页面会产生以下搜索关键词
cats cat domestic archived original retrieved pmid species feral journal isbn september october animal humans prey animals acid new pdf felis november human veterinary behavior small august press january person diseased ranging hectares housecats range range hundreds hundreds meters meters central central point synonymia et cvm synonymia establish territories territories vary vary considerably considerably size varietates cvm historia animalivm regni animalis oclc erxleben laurentii salvii lying rice rice straw holmiae laurentii tenth reformed energy sleeping synonymis locis differentiis synonymis especially grow et historia time vicinity older daily liberg sandell pads pant heat suggests aredreaming sociability lighted great pomp fires lighted great experience short periods short periods rapid periods rapid eye rapid eye movement eye movement sleep movement sleep accompanied sleep accompanied muscle accompanied muscle twitches muscle twitches suggests twitches suggests aredreaming aredreaming sociability wildcats brief period asleep sociability wildcats solitary midsummer fires lighted metz midsummer fires paris metz midsummer bonfire paris metz midsummer bonfire paris presided midsummer bonfire monarch presided midsummer occasion monarch presided hall occasion monarch variable ranges widely ranges widely dispersed widely dispersed individuals great pomp esplanade
注意前30个关键词如下:cats, cat, species, domestic,然而它们与其相邻的关键词之间没有上下文关系。当我们向下移动列表时,您会注意到一些简短的短语,人们可能会搜索以产生更精确的匹配,例如:“中心点”,“眼动”,“广泛分布的个体”,“伟大的广场”
这些2和3-gram不是简单地基于它们的出现次数,而是通过称为快速自动关键词提取(RAKE)的过程推导出来的,以根据其中的单词推断其重要性。
文档搜索使用方法
安装和配置后(请参阅配置部分),包含文本的PDF资产(不适用于图像,如扫描件)将自动索引。
与其他Craft字段一样,您可以通过针对名为contentKeywords
的字段来调整搜索查询以符合您的喜好。
要求
- Craft CMS 3.1.x
- pdftotext可执行文件
- 充足的内存
安装
插件
要安装插件,请按照以下说明操作。
-
打开您的终端并转到您的Craft项目
cd /path/to/project
-
然后让Composer加载插件
composer require venveo/document-search
-
在控制面板中,转到设置 → 插件,并点击“Document Search”的“安装”按钮。
pdftotext可执行文件
要在Ubuntu或Debian上安装,可以从aptitude获取预编译的二进制文件
apt-get install poppler-utils
要在RedHat或CentOS上安装,可以从yum获取预编译的二进制文件
yum install poppler-utils
注意:如果您正在寻找全文文档搜索解决方案,这不是您想要的。此插件的目的在于将大文档简化为PHP基础Web服务器可消费的大小。
配置文档搜索
文档搜索需要 pdftotext
的可执行二进制文件。默认的二进制文件位置设置为 /usr/local/bin/pdftotext
,但可以通过配置或设置选项进行更改。
要检查您的服务器上是否已安装 pdftotext,您可以运行
which pdftotext
有关安装 pdftotext 的说明,请参阅安装部分。
使用文档搜索
搜索索引将在资产保存时填充从资产中提取的关键词。现有资产的关键词不会自动生成,但可以使用 Craft 中的 ./craft resave/assets
命令生成。
由 Venveo 提供