这篇文章是我之前的文章 “Solutions:Elastic Workplace 搜索:随时随地搜索所有内容 (一)”的续篇。在上一篇文章中,我们讲述了什么是 Elastic Workplace 搜索就如果安装和部署它。我们已经展示了 Elastic Workplace 在 Dropbox 里强大的搜索能力。在今天的这篇文章,我们接着展示如何搜索 github 里的文件。
添加 github 源
我们可以通过 github 连接器将你所有的 GitHub 拉取请求和问题纳入 Workplace Search 中。
创建 github 应用
具体添加 github 的源, 我们可以参阅链接 “Github connector”。GitHub 连接器要求你在 GitHub 中创建一个 OAuth 应用。添加 GitHub 要求你属于 GitHub 组织-并且在 GitHub 组织内具有 OAuth 权限。
说明适用于 GitHub 和 GitHub Enterprise(Server)。首先我们登陆自己的 github.com 账号。然后,我们打开 “Settings”:
我们可以看到如下写的画面:
我们在左边的 Profile 的下面,可以找到 Developer settings 这个选项:
Workplace Search 需要一个可以与之交谈的 OAuth 应用。在创建一个之前,需要了解两个重要的事情……
- 该应用程序可以保持在开发人员模式。 你不需要发布它。
- 确保使用受信任且稳定的 GitHub 帐户创建此应用程序!
我们建议仅为此应用程序创建一个团队拥有的帐户。 如果访问丢失,我们将无能为力。
在上面的图中,请点击 “OAuth Apps”:
我们点击 “Register a new application”:
我们点击上面的 “Register application” 按钮:
这样我们就生产了我们的 Elastic Workplace Search 应用。在上面,我们记录下生成的 Client ID 及 Client Secret 供一下的配置使用。这样我们就完成了 github 的应用创建。
添加 github 连接器
我们首先打开我们的 Elastic Workplace Search:
我们点击 “Add a Source”:
我们点击 “Add an organization content source”:
点击 “Github”:
点击上面的 “Configure GitHub” 按钮:
我们填入我们之前得到的 Client ID 及 Client Secret,并点击 “Save Configuration” 按钮:
我们点击 “Connect GitHub” 按钮:
我们接着点击 “Connect GitHub” 按钮:
我们点击 “Authorize liu-xiao-guo” 按钮:
点击上面的 “Confirm password” 按钮:
点击上面的 “Complete connection”:
上面显示我们已经成功地连接到 github 了。
搜索 Github 的内容
就像我们上面所说的那样。Elastic Workplace Search 可以帮我搜索 PR (pull requests) 或 issues。我们打开 search application:
选择上面的 “Go to search application”:
在上面我们可以看到在默认的情况下,它显示 Github 和 Dropbox 两个源的搜索的内容。我们可以在搜索中打入一个关键词来进行搜索:
我们可以在搜索框的左边选择我们喜欢的 source 来进行搜索。
管理
创建用户及发送邀请
在这节里,我们来介绍如何创建用户,并发送邀请
为了能发送请求,我们首先必须配置 SMTP 来发送我们的请求。为此,我们打开 config/enterprise-search.yml 来进行配置:
email.account.enabled: true
email.account.smtp.auth: plain
email.account.smtp.starttls.enable: true
email.account.smtp.host: smtp.domain.com
email.account.smtp.port: 587
email.account.smtp.user: my-smtp-user-name
email.account.smtp.password: my-smtp-password-if-any
email.account.email_defaults.from: noreply@domain.com
针对我的情况,我们选择使用 hotmail 来做我们的实验,依据 Access your Hotmail.com,我的配置如下:
email.account.enabled: true
email.account.smtp.auth: plain
email.account.smtp.starttls.enable: true
email.account.smtp.host: smtp-mail.outlook.com
email.account.smtp.port: 587
email.account.smtp.user: YourEmailAccount
email.account.smtp.password: YourEmailPassword
email.account.email_defaults.from: noreply@hotmail.com
针对你的情况,你必须根据自己的邮件配置做相应的调整。我们需要保持这个配置文件,并重新启动 enterprise-search:
./bin/enterprise-search
接下来,我们打开默认的页面:
点击上面的 “Invite Users”:
如果我们没有配置适当的 SMTP 配置,那么左边的两个超链接将不会被显示。我们选择 “Invite users by email address”:
我们填入自己的邮件信息,并点击 “Send Invitations”:
如果你的配置正确的话,你将收到邀请的邮件,并让你注册成为新的用户。详细的流程,可以参阅文章 “Registering With Your Workplace”。
创建用户 Group
你可以建立自定义的小组,然后将他们填满。
点击上面的 “Add group” 按钮,我们填入 “developers”:
我们可以看见新创建的 developers 组。我们点击上面的 “Manage” 按钮:
我们点击上面的 “Manage shared Sources”, 就可以为这个组添加相应的 Sources。
我们可以针对这个组选择我们可以搜索的源。通过这个方法,我们对不同的组赋予不同的搜索权限。点击上面的 “Update”。
上面显示,我们已经成功地创建了这个组。我们点击上面的 “Manage Users” 按钮:
我们选择我们已经创建的用户, 然后点击 “Update” 按钮。
上面显示,我们新创建的 developers 组,含有 Dropbox 及 GitHub 两个源,同时它可以被 enterprise_search 用户所访问。
参考:
【2】https://www.elastic.co/guide/en/workplace-search/current/workplace-search-smtp-mailer.html