在所有行业中,团队成员现在都可以使用越来越多的基于目的的,基于云的工具,比如 google driver,salesforce,github 等。这些工具比以往任何时候都更加专注和易于使用。 这为大小型团队提供了新的协作形式,更快的执行速度和生产率的提升。 内容的激增创造了巨大的价值,也创造了一个新的机会:将所有信息统一在一个地方并使其可以在单个搜索框中轻松搜索的机会。Elastic Workplace Search 使这成为可能,并且现在比以往任何时候都更容易。
为了提供出色的搜索体验,有不同的关键的因素关乎你的产品成功如否。
你还需要考虑扩展性,如果你的应用程序将来会获得更多文档或更多用户,则需要使用易于支持此功能的基础架构
Elastic Enterprise Search 为你提供了基于这 3 个主要概念构建出色搜索体验的工具。
在我们的工作中,有时候我我们想搜索含有一些关键字的文章,但是我们不确定这篇文章放置于哪个文档或哪个存放的地方。这篇文章可能处于 dropbox,google drive,salesforce. office 365,confluence,gira 或自己定制的一个文件存储地方。我们有什么好的办法来帮我们搜索,并快速地定位我们想要的文档呢?
答案是 Elastic Workplace Search。它是一套个性化,集中式,安全的组织搜索体验的完整解决方案。它可以帮我们快速地搜索我们工作中所用到的所有的工具里的文档。Elastic 推出了很多成熟的数据连接器。这其中包括 Dropbox,Salesforce,G Suite,JIRA,Confluence 等等。
Elastic Workplace Search 使查找工作中的信息不仅有效,而且很愉快。 凭借其高度优美,用户友好的搜索 UI 和开箱即用的相关性。 在搜索时,请利用有用的功能,如文档预览和高级关键字检测(“ document” = .pdf,.doc,.xls等)。 有了搜索功能,办公室里的每个人都终于有了自己的私人助理。
在上图的右边,我们可以看到文档的一个预览。
Elastic Workplace Search 是消费级企业搜索解决方案。 它为整个组织中使用的所有工具提供了易于使用,功能强大的搜索。 对于你的日常工作,这是一个快速,可扩展且相关的搜索栏。
在 Elasticsearch 可靠的相关性和可扩展性的基础上,我们设计了一种搜索体验,仅要求你搜索与同事交谈的方式,即可快速找到文档或回答所需的内容。 无需配置任何复杂的应用程序,遍历复杂的界面或学习任何奇怪的约定:Elastic Workplace Search 理解你的意图并让你始终专注于手头的任务。
高级关键字检测
告别焦虑的日子,那里的多个浏览器窗口包含数百个打开的选项卡。 搜索所有文档,拉动请求,问题,票证,合同,电子表格-不管它们在哪里,无论你身在何处,都可以通过一个单一的,有条理的网关来完成工作。
Elastic Workplace Search 附带了云应用程序连接器,可让你在短短几分钟内开始学习。 对于第一个 beta 版本,我们重点介绍了当今现代组织中最常用的云应用程序:
Elastic Workplace Search 提供隐私组和可调整的搜索相关性,以便正确的人找到正确的事物。 将每个团队成员分配到一个组中:工程,销售,市场营销,设计,产品,领导力(最适合你的组织),并根据他们的特定需求校准其资源的相关性:
调整 GitHub 对你的工程团队,Salesforce 对销售团队,Dropbox 对设计团队的重要性; 任何合适的。 使用精细的访问控制和组分配,你可以安全地指导个人和组将找到的内容。 还有什么将找不到...
Elastic Workplace Search 包含了你期望从 Elastic 解决方案获得的所有功能:简单的数据索引,无缝的可伸缩性和超快的速度,以及高度相关的算法,搜索历史,自动完成,语言分析,错字容忍等等。 所有这些都得到了 Elastic 的有据可查,以社区为中心的专家支持。
Workplace Search 允许你在一个地方搜索所有内容。 要创建这种统一的搜索体验,请按照以下过程操作:
准备开始了吗?
在这一章节里,我们来介绍如何来动手展示 Elastic Workplace Search 的魅力!
在你的电脑上你需要安装 Java 8 或者 Java 11。对于 Ubuntu 操作系统的开发者来说,你可以参考我之前的文章 “如何在 Ubuntu 上安装 Java”。
安装 Elasticsearch 和 Kibana
对于没有安装 Elastic Stack 的开发者来说,你可以阅读我之前的文章 “Elastic:菜鸟上手指南” 安装 Elasticsearch 和 Kibana。你也可以按照如下的方式来部署一个 Docker 版本的 Elasticsearch:
根据 Workplace Search 的安装要求,我们需要购买 Elasticsearch Platinum license,或启动 30 天的试用。在今天的实验中,我们来启动 30 天试用。我们打开 Kibana:
接下来,我们还需要启动 Elasticsearch 的安全机制。我们在 Elasticsearch 的根目录下对 config/elasticsearch.yml 文件进行修改。我们需要添加:
xpack.security.enabled: true
到 elasticsearch.yml 文件中。等修改完后,我们先在一个 terminal 中启动 Elasticsearch:
./bin/elasticsearch
等 Elasticsearch 启动后,我们在另外的一个 terminal 中,打入如下的命令并生产一个 elastic 用户的随机密码:
$ ./bin/elasticsearch-setup-passwords auto
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]y
Changed password for user apm_system
PASSWORD apm_system = ZrYWbqpBBfSJTdz3ekud
Changed password for user kibana
PASSWORD kibana = 99aB61B6N1mJBDkknZfB
Changed password for user logstash_system
PASSWORD logstash_system = rkfV7w8bMNI0gvPHOktR
Changed password for user beats_system
PASSWORD beats_system = lYFRW1Dum7xEUATfZBnA
Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = KgfupKJHQlFSl8SSR5ZR
Changed password for user elastic
PASSWORD elastic = izdhd03fJI2c1xsVa8Hj
我们需要记录下这些密码,供我们以后使用。在这里的 elastic 用户,是一个超级用户。在本实验中,我们使用这个用户。我们也需要在 Kibana 中做相应的配置来使得我们能够登录 Kibana。具体如何操作,请参阅我之前的文章 “Elasticsearch:设置Elastic账户安全”。
你可以在地址 Workplace Search 下载最新的软件。我们也可以使用如下的命令来进行安装:
wget https://download.elastic.co/downloads/enterprisesearch/enterprise-search-7.6.0.tar.gz
按照 Elastic Stack 的安装要求,我们需要安装和 Elasticsearch 版本一致的 Workplace Search 软件。在上面我们安装的是版本为 7.6 的版本,我们对应的Elasticsearch的版本也是最新的7.6版本。如果你需要安装其它的版本,请在上面的命令中替换相应的版本信息。等我们把Workplace 下载完后,我们使用如下的命令来进行安装:
tar xzf enterprise-search-7.6.0.tar.gz
cd enterprise-search-7.6.0
我们现在来配置 config/enterprise-search.yml 文件。用我们喜爱的编辑器打开该文件,并添加如下的内容:
elasticsearch.host: [ELASTICSEARCH_URL]
ent_search.auth.source: standard
elasticsearch.username: elastic
elasticsearch.password: [ELASTIC_USER_PASSWORD]
allow_es_settings_modification: true
记得用我们上面步骤中的 elastic 用户密码来代替上面的 [ELASTIC_USER_PASSWORD]。同时我们也需要使用我们 elasticsearch 实际的地址来代替上的 [ELASTICSEARCH_URL],比如 http://127.0.0.1:9200。在默认的情况下,http://127.0.0.1:9200 就是默认值,我们不需要做任何的改动。
在上面我们已经成功地安装好 Elastic Stack 及 Workplace Search。接下来,我们开始启动 Workplace Search。在这里有两种方法来启动:
1)在命令行中定义自己喜欢的密码:
ENT_SEARCH_DEFAULT_PASSWORD=passwordexample bin/enterprise-search
2)直接运行 enterprice search,并获得我我们需要的密码:
bin/enterprise-search
在我们第一次运行的过程中,我们可以看到如下的输出:
#########################################################
*** Default user credentials have been setup. These are only printed once, so please ensure they are recorded. ***
username: enterprise_search
password: rsrcto4ktvweb7p5
#########################################################
我们可以看见 enterprice-search 会生成用户名及密码。就像上面说明的那样,我们需要记录下来这个用户名及密码,因为它只显示一次。一旦失去,再也没有机会获得了。
我们也可以看到如下的一些信息:
#########################################################
Success! Elastic Workplace Search is starting successfully.
In a few moments, you'll be able to login at the following address:
* URL: http://localhost:3002
* If this is your first time starting Workplace Search, check the console output above for your user authentication credentials.
* Visit the documentation: https://swiftype.com/documentation/enterprise-search
Secret session key has been generated.
Set the key in your config file to persist user sessions through process restarts:
secret_session_key: b0975084081fe37f5a01b5eeb548b5ba7c13d27ecca5ac5f723e066214c2ca44de041ad819ac19e11b42f3d612447e93f3b8f29d67de0fd6d35aab5ac5098af2
No secret management encryption keys were provided.
Your secrets will be stored unencrypted.
You can use the following generated encryption key in your config file to store new encrypted secrets:
secret_management.encryption_keys: [5b83691889bbbfc4965d2952f9d24ef225c5d48a134386c6e914b82f76811285]
#########################################################
在上面我们可以看到 enterprise-search 运行于 3002 口地址上。同时我们可以看到上面的两个 key:
secret_session_key: c62a8a82d8340fec1ba706ee81740be8483da30a94dc43468697880b7b9e87da81de81d307ebde23a1906695dbfa7e2dc4208ab17df8cb97d2cb2fa15bdd131b
secret_management.encryption_keys: [fff3ab3a8ba31911250d8d17014e367483d1e08570e9e1e6ae0f048d93aad9ae]
我们需要把上面的 key 填入到 config/enterprise-search.yml 文件中以保证 enterprise-search 重启后的用户会话。
vi config/enterprise-search.yml
等我们修改完上面的配置后,我们重新来启动我们的 enterprise-search,我们可以看出来如下的输出:
#########################################################
Success! Elastic Workplace Search is starting successfully.
In a few moments, you'll be able to login at the following address:
* URL: http://localhost:3002
* If this is your first time starting Workplace Search, check the console output above for your user authentication credentials.
* Visit the documentation: https://swiftype.com/documentation/enterprise-search
#########################################################
上面显示我们的 Elastic Workplace Search 已经被成功地启动了,并运行于端口地址 3002。
在起初开始运行的时候,我们可以看到如下的一些输出:
Starting the following Elastic Enterprise Search stack components:
- An application server, as well as background worker threads
- A pool of connectors
- A filebeat instance for indexing logs
forego | starting app-server.1 on port 5000
forego | starting filebeat.1 on port 5100
forego | starting connectors.1 on port 5300
从上面的输出里我们可以看出来:它他启动了一个 application server 及一些 connectors 和一个 filebeat 的实例。
我们在浏览器的地址栏中,输入地址 localhost:3002,我们可以看到如下画面:
正如上面显示的那样,它显示了目前的运行状态完好。我们的 Elasticsearch 的试用版还有29天的试用期。我们点击 “Continue to Login” :
我们把之前保存下来的用户名及密码输入到对话框中,并点击 “Log in” 按钮:
Hooray!我们终于看到了我们的第一个 Workplace Search 的第一个画面。这是我们的 Workplace Search 的默认画面。从这里我们可以添加 Source,邀请用户及定制你的体验。
让我们先从添加 Source 开始吧!
在这一节里,我们来添加一个 dropbox 的源。具体的操作流程,请参阅 “Dropbox Connector”
我们首先去 https://www.dropbox.com/developers/apps 添加一个应用:
我们点击 “Create app”:
点击 “Create app”按钮:
我们记下上面的 App key 及 App secret,以便在下面的添加 source 时使用。如果我们想 Brand 我们自己的应用的话,我们可以点击 “Branding” tab 来配置我们自己的应用图标。
在 Workplace Search 默认的画面中,我们点击 “Add a source”:
我们可以看到如下的画面:
在上面,我们可以看到目前在 Workplace Search 中已经存在的一些 Connectors。在上面,有我们非常熟悉的一些工作工具。在今天的实验中,我们来添加一个我们熟悉的 Source:dropbox。我们点击上面的 Dropbox 图片:
我们点击上面的 “Configure Dropbox”。我们输入自己的 ClientId 及 Secret:
那么我们可以进入如下的画面:
点击上面的 “Connect Dropbox",我们就可以连接上我们的 Dropbox 了:
我们再接着点击 “Connect Dropbox”:
我们填入我们的 Dropbox 的用户名及密码:
我们点击 “Continue” 按钮:
我们点击“Allow”按钮:
上面显示我们已经成功地把 Dropbox 连接上了。
我们来选择 Search application:
我们需要等一段时间,等Workplace把所有的文档建立索引。等这个过程完成后,我们就可以开始搜索了:
在上面,我们可以看到智能 filter 的例子。当我们打入 jpg 的时候,它会自动帮我们添加一个叫做 jpg 的过滤器。
我们在输入框中,输入 “Getting started pdf”, 它也同样给我们生成一个 pdf 的 filter。我们点击 Getting Started.pdf 链接,我们可以在右边看到这个文件的概览:
我们也可以选择 “Dropbox” 来对 Dropbox 源做单独的搜索,尽管我们目前只有一个唯一的源 Dropbox:
我们可以点击 “Sources” 图标,并查看当前源的所有信息:
在上面,我们可以关掉这个源,从而这个源不被搜索。也可以点击 “Details” 来查看这个源的所有的信息:
在上面我们可以看到关于 Dropbox 的所有的信息。如果大家感兴趣的话,我们可以点击 “Content” 或 “Source Settings” 来查这个源里的内容或修改这源的设置。
好了,我今天就谈到这里。在接下来的一个文章 “Elastic Workplace 搜索:随时随地搜索所有内容 (二)” 里,我来具体介绍如何创建 github 源,并如何创建 group 及用户等。
参考:
【1】Download Elastic Enterprise Search | Elastic
【2】https://www.elastic.co/guide/en/workplace-search/current/workplace-search-dropbox-connector.html