MCP 服务器:Elasticsearch 语义搜索工具
演示 repo: https://j.blaszyk.me/tech-blog/mcp-server-elasticsearch-semantic-search/
目录
Related MCP server: Elasticsearch 7.x MCP Server
概述
该存储库提供了一个 MCP 服务器的 Python 实现,中索引的Search Labs 博客文章进行语义搜索。
它假设您已经使用Elastic Open Crawler抓取了博客文章并将其存储在search-labs-posts索引中。
运行 MCP 服务器
将ES_URL和ES_AP_KEY添加到.env文件中,(查看此处了解如何生成具有最低权限的 api 密钥)
在MCP Inspector中启动服务器:
运行后,访问 MCP Inspector: http://localhost:5173
与 Claude Desktop 集成
要将 MCP 服务器添加到Claude Desktop :
这会更新你主目录中的claude_desktop_config.json 。下次重启后,Claude 应用将检测服务器并加载声明的工具。
抓取搜索实验室博客文章
1. 验证爬虫设置
要检查Elastic Open Crawler是否工作,请运行:
这应该从单个页面打印抓取的内容。
2.配置Elasticsearch
设置Elasticsearch URL 和 API Key 。
生成具有最低爬虫权限的 API 密钥:
从响应中复制encoded值并将其设置为API_KEY 。
3. 更新语义搜索的索引映射
确保search-labs-posts索引存在。如果不存在,请创建它:
更新映射以启用语义搜索:
使用Elasticsearch 的 ELSER 模型将body字段索引为语义文本。
4.开始爬行
运行爬虫来填充索引:
如果使用新的 Elasticsearch 集群,请等待ELSER 模型启动后再进行索引。
5.验证索引文档
检查文档是否已被索引:
这将返回索引中的文档总数。您也可以在Kibana中验证。
完成!进行语义搜索了