”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何将美丽搜索与 WikiJS 结合使用

如何将美丽搜索与 WikiJS 结合使用

发布于2024-09-02
浏览:546

How to use Meilisearch with WikiJS

总长DR

酱:https://github.com/mbround18/wikijs-module-meilisearch

软件

什么是美丽搜索

Meilisearch 是一个为速度和简单性而构建的开源搜索引擎。它用 Rust 编写,旨在以最少的配置提供快速、相关的搜索结果。 Meilisearch 擅长全文搜索,并且针对性能进行了优化,即使对于大型数据集也是如此。它支持开箱即用的功能,例如拼写错误容忍和可定制的相关性排名。

美丽搜索链接

什么是 WikiJS

Wiki.js 是一款现代的开源 wiki 软件,为管理和共享内容提供了强大而灵活的平台。它基于 Node.js 构建,设计轻量、快速且易于使用,具有时尚直观的界面,适合所有技能水平的用户使用。

维基百科链接

如何整合两者

先决条件

  • 美丽搜索运行实例
  • 运行 wikijs 实例

如果你没有这些,你可以使用这个docker compose。

使用 docker 撰写

  1. 将 docker compose 下载到目录中。
  2. 创建一个名为pkg的文件夹
  3. 创建一个名为 tmp 的文件夹
  4. 创建一个名为config的文件夹。
  5. 在配置文件夹中,对于此演示,下载此配置
  6. 运行 docker compose up 以使其根据需要生成文件。

安装模块

  1. 导航到 github.com/mbround18/wikijs-module-meilisearch 上集成它们的模块
  2. 导航到发布选项卡
  3. 在最新版本上下载Meilisearch.zip文件。
  4. 将 zip 解压到 wikijs 服务器上的 /wiki/server/modules/search/meilisearch。如果您使用 compose,请 docker compose down 并将 zip 文件解压到您的 ./pkg 文件夹中。
  5. 重新启动您的 wikijs 服务器。

设置模块。

建议在生产实例中,让 meilisearch 生成一个新密钥供您的应用程序使用。您可以通过以下curl命令来执行此操作:

curl --request POST \
  --url http://localhost:7700/keys \
  --header 'Authorization: Bearer demo' \
  --header 'Content-Type: application/json' \
  --data '{
    "description": "Wikijs Integration",
    "actions": ["*"],
    "indexes": ["wiki_index"],
    "expiresAt": "2042-04-02T00:42:42Z"
}'

将“demo”一词更改为您的主密钥。如果您正在使用 docker compose,那么这将仅适用于演示。除非您在撰写文件中更改了它。然后使用您为 $MEILI_MASTER_KEY 设置的内容。

  1. 登录到您的 wikijs 实例,对于撰写演示,您可能必须创建初始登录。只需记住在初始设置屏幕上将 url 设置为 http://localhost:3000。
  2. 导航至管理仪表板。
  3. 点击搜索引擎
  4. 启用美丽搜索
  5. 根据需要调整 API 密钥和主机。
  6. 单击“应用”,如果没有收到绿色提示消息,只需再次单击“应用”即可。发生这种情况的原因是创建索引时 Meil​​isearch 中的任务停滞。

现在它的设置是什么?

现在您可以开始使用美丽搜索来搜索您的维基了!如果您有现有内容,您可以单击“重建”,它会将您的所有内容添加到 meilisearch! :)

当您正常使用 wikijs 时,它会在 Meil​​isearch 中创建、更新和删除文档,作为正常页面渲染的一部分。

如果您想查看这方面的实时示例,在我的《龙与地下城》维基上,我们已经集成了此功能。触手可及的角色数据或场景数据的瞬间回忆起来真是太神奇了。

关于实施的注意事项,目前建议与 who 行匹配。将来,我会重写该段以截断并提供更小的建议。

版本声明 本文转载于:https://dev.to/mbround18/how-to-use-meilisearch-with-wikijs-5g3b?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • Java字符串非空且非null的有效检查方法
    Java字符串非空且非null的有效检查方法
    检查字符串是否不是null而不是空的 if(str!= null && str.isementy())二手: if(str!= null && str.length()== 0) option 3:trim()。isement(Isement() trim whitespace whitesp...
    编程 发布于2025-05-25
  • 如何在鼠标单击时编程选择DIV中的所有文本?
    如何在鼠标单击时编程选择DIV中的所有文本?
    在鼠标上选择div文本单击带有文本内容,用户如何使用单个鼠标单击单击div中的整个文本?这允许用户轻松拖放所选的文本或直接复制它。 在单个鼠标上单击的div元素中选择文本,您可以使用以下Javascript函数: function selecttext(canduterid){ if(do...
    编程 发布于2025-05-25
  • C++成员函数指针正确传递方法
    C++成员函数指针正确传递方法
    如何将成员函数置于c [&& && && && && && && && && && &&&&&&&&&&&&&&&&&&&&&&&华仪的函数时,在接受成员函数指针的函数时,要在函数上既要提供指针又可以提供指针和指针到函数的函数。需要具有一定签名的功能指针。要通过成员函数,您需要同时提供对象指针(此...
    编程 发布于2025-05-25
  • Java为何无法创建泛型数组?
    Java为何无法创建泛型数组?
    通用阵列创建错误 arrayList [2]; JAVA报告了“通用数组创建”错误。为什么不允许这样做?答案:Create an Auxiliary Class:public static ArrayList<myObject>[] a = new ArrayList<myO...
    编程 发布于2025-05-25
  • \“(1)vs.(;;):编译器优化是否消除了性能差异?\”
    \“(1)vs.(;;):编译器优化是否消除了性能差异?\”
    答案: 在大多数现代编译器中,while(1)和(1)和(;;)之间没有性能差异。编译器: perl: 1 输入 - > 2 2 NextState(Main 2 -E:1)V-> 3 9 Leaveloop VK/2-> A 3 toterloop(next-> 8 last-> 9 ...
    编程 发布于2025-05-25
  • Python环境变量的访问与管理方法
    Python环境变量的访问与管理方法
    Accessing Environment Variables in PythonTo access environment variables in Python, utilize the os.environ object, which represents a mapping of envir...
    编程 发布于2025-05-25
  • Spark DataFrame添加常量列的妙招
    Spark DataFrame添加常量列的妙招
    在Spark Dataframe ,将常数列添加到Spark DataFrame,该列具有适用于所有行的任意值的Spark DataFrame,可以通过多种方式实现。使用文字值(SPARK 1.3)在尝试提供直接值时,用于此问题时,旨在为此目的的column方法可能会导致错误。 df.withCo...
    编程 发布于2025-05-25
  • Android如何向PHP服务器发送POST数据?
    Android如何向PHP服务器发送POST数据?
    在android apache httpclient(已弃用) httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(“ http://www.yoursite.com/script.p...
    编程 发布于2025-05-25
  • 如何在Java字符串中有效替换多个子字符串?
    如何在Java字符串中有效替换多个子字符串?
    在java 中有效地替换多个substring,需要在需要替换一个字符串中的多个substring的情况下,很容易求助于重复应用字符串的刺激力量。 However, this can be inefficient for large strings or when working with nu...
    编程 发布于2025-05-25
  • 如何正确使用与PDO参数的查询一样?
    如何正确使用与PDO参数的查询一样?
    在pdo 中使用类似QUERIES在PDO中的Queries时,您可能会遇到类似疑问中描述的问题:此查询也可能不会返回结果,即使$ var1和$ var2包含有效的搜索词。错误在于不正确包含%符号。通过将变量包含在$ params数组中的%符号中,您确保将%字符正确替换到查询中。没有此修改,PDO...
    编程 发布于2025-05-25
  • PHP未来:适应与创新
    PHP未来:适应与创新
    PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。 引言在编程世界中,PHP一直是网页开发的中流砥柱。作为一个从1994年就开始发展...
    编程 发布于2025-05-25
  • Python元类工作原理及类创建与定制
    Python元类工作原理及类创建与定制
    python中的metaclasses是什么? Metaclasses负责在Python中创建类对象。就像类创建实例一样,元类也创建类。他们提供了对类创建过程的控制层,允许自定义类行为和属性。在Python中理解类作为对象的概念,类是描述用于创建新实例或对象的蓝图的对象。这意味着类本身是使用类关...
    编程 发布于2025-05-25
  • 为什么我的CSS背景图像出现?
    为什么我的CSS背景图像出现?
    故障排除:CSS背景图像未出现 ,您的背景图像尽管遵循教程说明,但您的背景图像仍未加载。图像和样式表位于相同的目录中,但背景仍然是空白的白色帆布。而不是不弃用的,您已经使用了CSS样式: bockent {背景:封闭图像文件名:背景图:url(nickcage.jpg); 如果您的html,css...
    编程 发布于2025-05-25
  • 将图片浮动到底部右侧并环绕文字的技巧
    将图片浮动到底部右侧并环绕文字的技巧
    在Web设计中围绕在Web设计中,有时可以将图像浮动到页面右下角,从而使文本围绕它缠绕。这可以在有效地展示图像的同时创建一个吸引人的视觉效果。 css位置在右下角,使用css float and clear properties: img { 浮点:对; ...
    编程 发布于2025-05-25
  • 如何检查对象是否具有Python中的特定属性?
    如何检查对象是否具有Python中的特定属性?
    方法来确定对象属性存在寻求一种方法来验证对象中特定属性的存在。考虑以下示例,其中尝试访问不确定属性会引起错误: >>> a = someClass() >>> A.property Trackback(最近的最新电话): 文件“ ”,第1行, AttributeError: SomeClass...
    编程 发布于2025-05-25

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3