How to install cirrussearch extension for mediawiki: Difference between revisions

 
(20 intermediate revisions by the same user not shown)
Line 26: Line 26:
检测 elasticsearch 是否成功开启:
检测 elasticsearch 是否成功开启:
<syntaxhighlight lang="bash" line>
<syntaxhighlight lang="bash" line>
; 检测代码
# 检测代码
curl -X GET "localhost:9200/?pretty"
curl -X GET "localhost:9200/?pretty"


; 正常结果参考样子
# 正常结果参考样子
{
{
   "name" : "Cp8oag6",
   "name" : "Cp9sag6",
   "cluster_name" : "elasticsearch",
   "cluster_name" : "elasticsearch",
   "cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
   "cluster_uuid" : "AT78_T_DTp-1qgIasfxtQqA",
   "version" : {
   "version" : {
     "number" : "7.10.2",
     "number" : "7.10.2",
     "build_flavor" : "default",
     "build_flavor" : "default",
     "build_type" : "tar",
     "build_type" : "tar",
     "build_hash" : "f27399d",
     "build_hash" : "f2733455d",
     "build_date" : "2016-03-30T09:51:41.449Z",
     "build_date" : "2016-03-30T09:51:41.449Z",
     "build_snapshot" : false,
     "build_snapshot" : false,
     "lucene_version" : "8.7.0",
     "lucene_version" : "8.5.0",
     "minimum_wire_compatibility_version" : "1.2.3",
     "minimum_wire_compatibility_version" : "1.3.3",
     "minimum_index_compatibility_version" : "1.2.3"
     "minimum_index_compatibility_version" : "1.3.3"
   },
   },
   "tagline" : "You Know, for Search"
   "tagline" : "You Know, for Search"
Line 50: Line 50:


== 安装拓展 ==
== 安装拓展 ==
所谓拓展,即 Mediawiki 的 Extension,均在 [https://www.mediawiki.org/wiki/Extension:CirrusSearch Mediawiki 官网] 下载即可。
所谓拓展,即 Mediawiki 的 Extension,均在 [[mediawikiwiki:Extension:CirrusSearch|Mediawiki 官网]] 下载即可。


此处拓展不建议使用 git 方式安装,因为 master 分支,与 mediawiki 稳定版分支,大概率不兼容。所以采用从拓展页直接下载 mediawiki 稳定版分支对应的拓展版本,很可能官方解决了兼容问题,就非常方便且不易出错。
此处拓展不建议使用 git 方式安装,因为 master 分支,与 mediawiki 稳定版分支,大概率不兼容。所以采用从拓展页直接下载 mediawiki 稳定版分支对应的拓展版本,很可能官方解决了兼容问题,就非常方便且不易出错。
Line 56: Line 56:
说人话就是,从网页端下载,再 tar 解压。通过这种方式安装对应兼容版本。
说人话就是,从网页端下载,再 tar 解压。通过这种方式安装对应兼容版本。


[[File:选好版本,兼容无忧.png|1000px|这种拓展详情页面大家都很熟悉吧]]
[[File:选好版本,兼容无忧.png|1000px|这种拓展详情页面大家都很熟悉吧,选好版本,兼容无忧]]


解压命令:<code>tar -xzf Elastica-REL1_42-78f2f84.tar.gz -C /var/www/mediawiki/extensions</code>
解压命令:<code>tar -xzf Elastica-REL1_42-78f2f84.tar.gz -C /var/www/mediawiki/extensions</code>
Line 62: Line 62:
=== 安装 Elastica ===
=== 安装 Elastica ===
# 下载 Elastica 拓展,并解压至 extensions/ 文件夹
# 下载 Elastica 拓展,并解压至 extensions/ 文件夹
# Elastica 文件夹内,执行 <code>sudo composer install --no-dev --no-plugins --no-scripts</code>。用 sudo 不完美但目前我没找到更完美方法
# 可选,在 Elastica 文件夹内,执行 <code>sudo composer install --no-dev --no-plugins --no-scripts</code>。用 sudo 不完美但目前我没找到更完美方法
# 在 LocalSettings.php 中添加 <code>wfLoadExtension( 'Elastica' );</code>
# 在 LocalSettings.php 中添加 <code>wfLoadExtension( 'Elastica' );</code>
如果是通过网页端直接下载的插件,大概率不用 2 中的 composer 步骤,因为兼容问题官方 mediawiki 稳定版解决好了的。
如果是通过 git 下载的插件,大概率要用 2 中的 composer 步骤,因为拓展版本、master 版本、mediawiki 稳定版三处很可能不兼容,会导致生成索引时找不到相关 api。


=== 安装 CirrusSearch ===
=== 安装 CirrusSearch ===
# 下载 CirrusSearch 拓展,并解压至 extensions/ 文件夹
# 下载 CirrusSearch 拓展,并解压至 extensions/ 文件夹
# CirrusSearch 文件夹内,执行 <code>sudo composer install --no-dev --no-plugins --no-scripts</code>。用 sudo 不完美但目前我没找到更完美方法
# 可选,在 CirrusSearch 文件夹内,执行 <code>sudo composer install --no-dev --no-plugins --no-scripts</code>。用 sudo 不完美但目前我没找到更完美方法
# 在 LocalSettings.php 中添加 <code>wfLoadExtension( 'CirrusSearch' );</code>
# 在 LocalSettings.php 中添加 <code>wfLoadExtension( 'CirrusSearch' );</code>
如果是通过网页端直接下载的插件,大概率不用 2 中的 composer 步骤,因为兼容问题官方 mediawiki 稳定版解决好了的。
如果是通过 git 下载的插件,大概率要用 2 中的 composer 步骤,因为拓展版本、master 版本、mediawiki 稳定版三处很可能不兼容,会导致生成索引时找不到相关 api。
=== composer 样例 ===
如果你还是非得用 git 方式安装以上两个拓展,那提供一个 composer 成功运行的两个样例。
<syntaxhighlight lang="bash" line>
# 从 git 安装后 composer 的样例
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Continue as root/super user [yes]?
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 45 installs, 0 updates, 0 removals
  - Locking symfony/string (v7.2.0)
  - Locking tysonandre/var_representation_polyfill (0.1.3)
  - Locking webmozart/assert (1.11.0)
Writing lock file
Installing dependencies from lock file
Package operations: 9 installs, 0 updates, 0 removals
  - Downloading nyholm/dsn (2.0.1)
  - Downloading elasticsearch/elasticsearch (v7.17.1)
  - Downloading ruflin/elastica (7.3.1)
  - Installing react/promise (v3.2.0): Extracting archive
  - Installing ezimuel/guzzlestreams (3.1.0): Extracting archive
9 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
4 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
</syntaxhighlight>
<syntaxhighlight lang="bash" line>
# 从网页端安装后 composer 的样例
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Continue as root/super user [yes]?
Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Nothing to install, update or remove
Generating autoload files
4 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
</syntaxhighlight>
=== 容量比较 ===
本节无实际教程意义,仅做个比较。
{| class="wikitable"
|+ 拓展不同安装方式占用容量比较
|-
! rowspan="2" |安装方式
! rowspan="2" |状态
! colspan="2" |拓展名
|-
|Elastica
|CirrusSearch
|-
| rowspan="2" |网页方式安装
|解压前
|568KB
|13MB
|-
|解压后
|7.3MB
|92MB
|-
| rowspan="2" |git 方式安装
|composer 前
|1.6MB
|78MB
|-
|composer 后
|8.3MB
|118MB
|}


== 生成索引 ==
== 生成索引 ==