Enterprise:Elastic App Search - Web 爬虫器实践

23 篇文章 7 订阅

让内容搜索可通过多种形式实现。Elastic App Search 已经允许用户通过上传或粘贴 JSON 以及通过 API 终端来采集内容。使用 Elastic 企业搜索 7.11,用户现在可以通过功能强大的网络爬虫来采集内容,该爬虫能够从可公开访问的网站中检索信息,从而可以轻松地在你的 App Search 引擎中搜索内容。与 App Search 上的任何采集方法一样,这种模式是在采集时推断出来的,只需单击一下即可进行近乎实时地更新。通过单击(无需写代码),用户就可以定制网络爬虫规则,以便在排除规则指示网络爬虫避免某些页面、内容和术语的同时指定入口点。

Elastic scrawler

在今天的练习中,我们将详细描述如何部署 Elastic Stack 以实现对指定网站的爬虫。请注意App Search web crawler 只适用于 7.11 及以后的版本

什么是 Web crawler?

 Web crawler 也被称作为 Web spider 或者 Web robot。它可以帮我们自动地发现网站,并使它的内容变得容易被搜索。它通常起始于一个网站的入口地址,比如:

 Web crawler 将对整个网站进行爬虫,并使得该网站的内容变成可以被搜索的内容。网站的内容最终变成可以被搜索的索引。然后,它会接着爬该网站的所有可以点击到的链接:

并把它们的内容最终导入到 Elasticsearch 中,并成为可以被搜索的文档。在爬虫的过程中,你可以定义爬虫的一些规则,这样你可以选择性地爬一些网站中的链接:

如果一个链接不能在网站上被链接到,它里面的内容将不能被发现。到目前为止,只有静态的内容才可以被爬到。动态的内容不支持。

在爬虫的过程中,如果一个网页里的链接返回的是 4xx,那么之前导入的关于这个链接的所有数据将被删除。

通常在我们使用 Web crawler 时,调试的过程是这样的:

我们需要不断地调整我们需要的规则。我们可以通过使用 Kibana 并对系统索引 .ent-search-crawler-*-logs* 来进行查看,从而达到 troubleshooting 的目的。我们可以借助 Logs 应用来帮助我们进行调试:

如上所示,你需要在 Logs 应用中配置索引模式 .ent-search-crawler-*-logs* ,并且添加如上所示的字段 url.path,event.action 及 http.response.status_code。关于如何使用 Logs 应用,请阅读我的另外一篇文章 “Observability:Elastic Logs 应用介绍 ”。

安装

安装 Elasticsearch

我们可参考我之前的文章 “如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch” 来安装 Elasticsearch


安装 Kibana

我们接下来安装 Kibana。我们可以参考我之前的文章 “如何在 Linux,MacOS 及 Windows 上安装 Elastic 栈中的 Kibana” 来进行我们的安装。


Java安装

你需要安装 Java。版本在 Java 8 或者 Java 11

App search 安装

我们在地址 Download Elastic Enterprise Search | Elastic 找到我们需要的版本进行下载。并按照相应的指令来进行按照。如果你想针对你以前的版本进行安装的话,请参阅地址 Past Releases of Elastic Stack Software | Elastic

如果我们不对 Elasticsearch 或 app-search 做任何的配置的话,我们会看到如下的错误信息:

配置 Elasticsearch

按照 Download Elastic Enterprise Search | Elastic 页面的要求,我们需要针对 Elasticsearch 配置安全访问。我们可以参考之前的文章 “Elasticsearch:设置 Elastic 账户安全” 来配置安全。在这里需要特别指出的是:我们在 config/elasticsearch.yml 文件中需要多添加一个配置:xpack.security.authc.api_key.enabled: true,也即:

config/elasticsearch.yml

xpack.security.enabled: true
xpack.security.authc.api_key.enabled: true

在修改完上述的配置后,我们在一个 terminal 中启动 elasticsearch:

$ bin/elasticsearch

然后,在另外一个 terminal 中打入如下的命令来设置密码:

$ ./bin/elasticsearch-setup-passwords interactive

为了方便,我们把所有的密码都设置为 password。

配置 Elastic Enterprise Search

我们在 Enterprise Search 的安装目录下,找到 config/enterpirse-search.yml  文件,并添加如下的配置:

config/enterpirse-search.yml 

ent_search.auth.source: standard
elasticsearch.username: elastic
elasticsearch.password: ELASTIC_USER_PASSWORD
allow_es_settings_modification: true

在上面,你需要修改上面的密码为你自己的 Elasticsearch 密码。在上面,我设置的密码为 password。按照要求,我们必须设置至少一个加密的键值。在上面我们第一次运行 enterprise-search 时,在返回的错误里有一个是 :

Invalid config file (/Users/liuxg/elastic1/enterprise-search-7.11.0/config/enterprise-search.yml):
The setting '#/secret_management/encryption_keys' is not valid
No secret management encryption keys were provided.
Your secrets cannot be stored unencrypted.
You can use the following generated encryption key in your config file to store new encrypted secrets:

secret_management.encryption_keys: [99c52330f78f2b669ebacb58ed65c6289e1d7b18f779175b0ea715f6bf14451c]

我们把上面的这个 key 添加到 config/enterprise-search.yml 文件中:

启动  enterprise-search

在启动的时候,我们可以为 enterprise-search 用户设置一个密码,我们可以这样启动:

$ ENT_SEARCH_DEFAULT_PASSWORD=passwordexample bin/enterprise-search

针对我的情况,我把密码设置为 password:

$ ENT_SEARCH_DEFAULT_PASSWORD=password bin/enterprise-search

经过一段时间的运行,我们可以看到:

在上面,我们可以看到 enterprise-search 用户的密码是 password。这个就是我们在命令行中定义的密码。我们也可以看到如下的信息:

它表明我们的 enterprise-search 已经成功运行,并可以在端口地址 http://localhost:3002 进行访问。如果我们能够看到如下的画面,则表明我们的 enterprise search 的安装是成功的:

配置网站爬虫

在上的页面中,点击 Continue to Login 按钮:

我们把之前设置的用户名及密码输入进去。针对我的配置:enterprise_search/password。点击 Log In 按钮:

上面显示它将爬地址以地址 Free and Open Search: The Creators of Elasticsearch, ELK & Kibana | Elastic 网页以及在网页包含的所有的链接:

同时由于 Careers | Elastic 不在首页被链接,我们单独为它添加了一个 entry point。由于一些考虑,我们也同时定制了一些爬虫规则。在上面,我们不希望爬 Careers | Elastic 里的所有网页。在上面,我们甚至可以添加更多的 rules。在这里必须注意的是,规则的执行时从上到下来顺序执行的。针对上面的情况就是,先执行 Disallow 含有 /jobs 的链接,然后 allow 所有的链接(.*)。

一旦定义完毕,我们点击右上角的 Start a Crawl 按钮:

上面的右上角显示正在爬。我们可以点击 Cancel Crawl 来停止这个动作。我们可以一直等直到爬完所有的 entry points。

等爬完整个页面,我们可以对文章进行搜索:

关于如何设置同义词,调节相关度,Curations 等,请参考我之前的文章 “Enterprise:Elastic App Search 入门”。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值