百度站长平台服务升级助力搜索为生态赋能

2017年3月23日由百度站长平台主办的VIP大讲堂&沙龙广州站成功在广州天河喜来登酒店举办,此次沙龙主讲百度站长平台全新服务升级、移动网页规范和移动网页加速器项目。

站长平台的职责

会议伊始,百度站长平台负责人郑娜女士讲到:

站长平台已经陪伴大家走过六年,除工具流量管理平台外,还作为百度搜索和互联网业界沟通的桥梁;通过线上、线下多种方式,让百度的工程师与站长面对面交流,让百度搜索了解到更多站长需求,也让站点越来越了解百度搜索规则和搜索优化新趋势,让搜索更开放;

重磅首曝:阿拉丁即将开放

百度阿拉丁平台相信在做的各位都在百度上有见过展示,搜索下出现的很多个性化的、特性的展示都是阿拉丁效果,会上曝出的重磅消息是:百度的阿拉丁平台,准备开放了,开放后将支持更多站点的优质内容优先展现给百度搜索用户。

MIP、PWA,让”技术范儿”站点、开发者更受益

在技术支持方面,2017年会持续加大投入, 除已成熟的MIP技术会持续推广外,平台还还将和谷歌合作推广PWA,PWA会让H5具备Native App的体验,从而增加网站的转化率和日活。目前Mip已覆盖站点页面数超9亿,带给站点的除了流量普遍提升20%以上外,广告点击率和广告收入普遍提升50%以上。

VIP俱乐部服务升级

平台将VIP俱乐部服务针对不同特权给予升级;

1、问题反馈,VIP站点在反馈中心提交问题,后台将优先响应,相当于银行大厅的VIP优先通道;

2、资源特权,包括我们今年新产品的优先内测,例如阿拉丁和原创内测

3、服务特权,针对VIP站点我们将通过EDM和异常提醒为站点提供搜索动态、规则、命中算法等服务

4、开放申请,VIP俱乐部一直以来都是邀请制度,2017年将会在一些垂类开放申请,现阶段原创的时效性申请已开放,后续也会陆续开放其他垂类。

移动用户体验将是重中之重,页面过度广告将被严惩!

无论任何性质的移动页面,用户都不希望看到不想看到的信息

会上,站长学院对冰桶算法1-4.5、天网算法、蓝天算法、烽火算法等一系列百度搜索对移动落地页的整治方向给出了详尽的解释,同时强调过度广告对移动搜索用户体验的伤害非常之大,呼吁站点对过度广告做出调整,重申百度对移动页面广告面积的要求是:越小越好!

让搜索为生态赋能

生态赋能是平台在2016年12月北京站长沙龙上首度提出的新方向,今年也会是主旋律,百度搜索旨在通过一系列举措,给予百度生态中合作伙伴技术、产品、运营等方面的更多扶持、资源;提高站长主动性共同建设一个良性发展的互联网搜索生态。

明略讲堂 如何使用Elasticsearch构建企业级搜索方案 技术干货

今天的明略讲堂,我们来聊聊搜索。说到搜索,大家第一印象就是百度,Google,输入关键词查询自己想要的信息,但是,搜索应用远不止这些。

引用“明智系统”发布会上吴明辉的一个观点:

人工智能历史里面最成功的商业的应用是什么?

就是搜索引擎

这里面搜索引擎不仅包括Google、百度、搜狗、必应,其实还包括全世界最大的电子商务网站,包括像亚马逊、阿里巴巴、淘宝、天猫这些都是搜索引擎。淘宝搜索引擎是你需要搜索到你的商品,把商品找出来,它也是搜索引擎的过程。

明略数据作为企业级AI服务的提供商,在公安、金融、工业领域的实践,也涉及到大量的搜索。比如,在公共安全领域,我们使用搜索来满足用户对知识图谱中的实体、关系和事件的查询,并支持多类数据的混合碰撞分析,自然语言搜索就是在这个领域得到了较好的应用,包括企业级AI统一入口“小明”,其实也是要基于背后强大的企业级搜索基础。

所以,今天我们来分享一篇明略数据搜索技术专家陈智发为大家带来的超强无比的实用技术干货,告诉我们,如何使用Elasticsearch构建企业级搜索方案,诚然,搜索应用远不止查找网页和文件。

全文约9400字,阅读时间大约需要18分钟。

本次内容转自公众号大数据杂谈(ID:BigdataTina2016)

内容整理自 8 月 17 日 大数据杂谈微信社群内容分享。

编辑|Natalie

大家好,我是明略数据的陈智发,很高兴今天能跟大家分享我们明略在企业级搜索服务方面的一些心得。

今天我想从以上四个方面内容展开介绍,首先对企业级搜索进行简单的介绍,然后重点讲一下我们的企业级搜索方案,最后会介绍一下语义分析在搜索方案中的运用和一些实际的案例。

企业级搜索简介

说到搜索,大家第一印象一般都是像百度、Google 这样的互联网搜索引擎,这些搜索引擎主要通过网络爬虫抓取互联网上的数据,比如网页、图片、文档、音视频等,任何人都可以在上面输入关键词查询自己想要的信息;而另一方面,平时大家关注得比较少的企业搜索,则是对企业提供一整套的搜索技术方案,它们处理的数据大部分是来自于企业内网,形式上跟互联网搜索的数据不太一样,可能包含内部文档、邮件、数据库、第三方办公软件,当然也可以包括外部的数据,而企业搜索的用户一般也只能在企业内网里使用这些搜索服务。

这里列出了几个比较知名的企业搜索服务商,比如 Google GSA, HP 的 Autonomy, 基于 Solr 的商业方案 Lucidworks,还有我们今天会介绍到的 Elasticsearch。所以无论是从数据还是使用方式上,互联网搜索和企业搜索都有着较多的不同点。

互联网搜索与企业级搜索的区别还体现在其他几个方面:

  1. 数据获取方式和更新频率:互联网搜索需要爬虫去被动抓取,而爬虫覆盖到新的内容是需要一定的时间的,所以在数据的更新上往往不会那么及时;而企业搜索的数据一般是主动生成的,所以搜索服务很容易知道什么时候需要更新数据(要么是通过用户操作要么是 API 调用),数据的更新可以做到近实时的

  2. 在数据完整性的要求上,互联网搜索很难也不可能覆盖到所有的公开数据,更何况由于暗网、政策和 Robots 协议的存在,互联网搜索本来就触及不了或不能显示某些数据,用户进行互联网搜索时如果找不到想要的信息也可以理解;反观企业搜索,处理过哪些数据都是计划内的,如果搜不到本应搜到的内容,用户可能会暴跳如雷。

  3. 结果排序:互联网搜索的排序是以 PageRank 算法为基础的,而企业级搜索常常依赖于特定的业务逻辑

  4. 权限:企业级搜索经常需要进行严格的权限控制,不该让用户看到的数据不能显示,而互联网搜索没有限制,即使有也是由于政策原因,与用户本身无关

  5. 对抗博弈:由于互联网的内容有可能来自于有商业诉求的个人或群体,互联网搜索需要考虑如何对用户的搜索优化行为进行公平的评判(尤其是恶意作弊),而企业级搜索是企业自身控制可搜索内容不需要考虑

  6. 用户在互联网搜索时是无法对搜索结果进行显式的控制的(但可以通过搜索引擎提供的个性化方案和点击流取得隐性的影响),而在企业内部,用户不但可以修改各种排序策略还可以做到直接控制显示的结果

那么企业级搜索应该怎么去做呢?

显然光靠技术是解决不了问题的,虽然我们有 Elasticsearch、Solr 这样的底层技术支持,但它们更多的还是作为技术人员的核心工具,单靠这些无法实现用户的业务价值。

我们需要结合领域知识、用户的业务去搭建一个定制化的方案。

在设计一个企业级搜索方案时,首先要了解清楚,我们要处理的数据内容是什么样的,用户是谁以及他们想要什么样的输出结果;在设计完方案后,需要持续收集来自用户的反馈,修正我们对领域业务的理解、调整数据架构、进一步改进搜索的相关度效果,从而形成一个良性的闭环。

不同领域中的政企客户,很有可能会有不同的需求:

比如在公共安全领域,搜索出来的信息一定要全(由于搜索不到影响破案那就麻烦了),且要求搜索结果尽量的准确,不相关的结果用户不希望看到(而不是放在靠后一点的位置),而且数据的更新一定要及时;

而在新闻或论坛搜索里,用户需求可能更侧重于信息的覆盖面以及推荐内容的匹配程度上。

由此可见,企业搜索的难点在于以下几个方面:需要支持多种数据接入方式,除了原始的数据内容之外,我们往往还需要对数据进行适当的清洗、治理,添加标记 (tagging),丰富数据,定义关联。作为服务提供商,我们的索引配置足够的灵活、支持根据业务和数据定义合适的索引结构(对结果排序同样重要)。

基于 Elasticsearch 构建企业级搜索方案

下面我们来看看怎么基于 Elasticsearch 构建企业级搜索方案

在开始正题之前,我觉得还是先简单介绍一下 Elasticsearch 好让大家有个上下文。

Elasticsearch(常简称 ES)是一个基于 Apache Lucene 的分布式搜索引擎,左边是 ES 大体上的架构,它在 Lucene 支持的功能之上,提供了在节点管理、节点发现、建索引、查询的功能,并提供了用户友好的 REST API。

ES(实际上是 Lucene)建索引的过程如右图所示,把要建索引的数据从数据源抽取出来后,文本字段经过分词后变成一个个的词,最终这些词会存入一个大词典中排序编号,并且创建或更新每个词对应的倒排链,用户搜索时即可根据倒排链快速查找包含一个或多个关键词的文档。

为了支持更多的业务场景,我们搭建了这样一套企业级搜索服务的整体架构:首先大家看右侧,是我们底层对接的搜索引擎,目前主要是 Elasticsearch,当然也正在接入 Solr Cloud。

当初设计的时候就是考虑到我们服务的不同企业的平台环境中可能有的使用 Solr Cloud 有的使用 Elasticsearch,所以我们对通用的索引、查询功能进行了抽象和封装,使得底层引擎可以便于切换。

抽象出来的核心搜索服务可以从两个方向看,向上的方向对应的是建索引的过程:

  • 虽然 Elasticsearch 可以通过 Beats 接入各种数据源,但出于可维护性和项目定制化、底层引擎去耦合等考虑,还是自己创建多种数据源连接器

  • 数据源从连接器输出后我们可以得到最原始的数据,之后可以在一个插件化的数据预处理流水线中进行多种处理,这一步对于搜索服务提供的整体功能至关重要,直接决定了我们搜索什么内容;

  • 经过处理的干净数据如何构建索引是由索引配置和索引模块决定的,在索引配置中,用户可以指定数据字段与索引字段的对应关系以及每个索引字段的具体索引配置(比如分词器等),而索引模块则根据索引字段的元属性创建 Elasticsearch 或 Solr 的索引配置,并根据索引配置为数据指定一个索引进行写入操作,还有索引别名的管理等等

  • 配置的内容以及应用相关的数据将由核心存储模块的元数据库进行统一管理自顶向下的方向对应的是查询的过程:

  • 系统会先对用户输入的查询内容(比如关键词)进行一系列的 NLP(自然语言处理)分析,比如搜索意图识别。当然其实这个 NLP 模块在预处理流水线也可以用到

  • 初步的查询分析结果还可以经过一个同样插件化的流水线过程进行进一步的处理,这个在后面会展开介绍

  • 排序模块负责在发送 Query 到底层引擎前根据用户配置的业务逻辑对查询计划进行一定的修改,也负责在结果返回后对排序的结果进行调整

  • 用户除了可以使用定制的搜索应用页面访问搜索服务之外,第三方应用也可以通过统一的 API 方式使用搜索服务,便于我们的合作伙伴进行集成。

下面我们分模块介绍一下搜索系统各个部分。

给企业客户制定一套搜索方案时,需要先了解他们的数据种类和规模、以及业务模式等情况,从而可以设计好一个适当的索引分布方案。

这里举两个例子:

第一个例子是,对于数据规模相对稳定的情况,我们可以根据数据规模和现场的资源情况(比如服务器节点数,CPU 核数,可用内存资源等),智能地计算出一个合适的索引分配方案。

比方说,有三类数据,人口的数据比较多,而手机和车辆的数据比较少,那么 Partition Planning 程序就会判断把手机和车辆的数据存放在一个 ES index 下(分属不同的 Type),并且只需要分配 4 个 shards(分块),而人口数据则需要单独创建一个 ES index,并且设置 10 个 shards,这样既充分利用了硬件的资源,同时也可以在性能和占用资源上取得较好的平衡(毕竟每个索引都要占用 cache 等资源,虽然使用多个 Type 也有一些不利的地方)

第二个例子是,对于数据规模不稳定且随时间增长的场景,可以以一天或一周为单位创建索引(根据具体需求而定),而且往往可以把实时 / 在线的数据索引存放在在线查询集群里,而历史的全量数据进行存放在离线计算集群,一般来说在线查询集群保留半年或一年内的数据,并可以使用更高端的配置(如 SSD)进行加速。

数据在两个集群中的分配可以有多种做法,简单的做法是半年数据可以同时写入在线和离线集群,然后定期删除(比如每天)在线集群中的过时数据。

由于我们是一家企业服务提供商,在索引配置上,我们需要做一些权衡,既要满足项目实施团队容易定制的需求,同时也要尽量降低使用的门槛。

因此我们对 ES 索引的配置项也做了一层抽象,把一些跟业务功能不太相关的配置项隐藏起来,只保留业务和项目人员比较容易理解的配置项。

比方说,索引分词方案,我们会默认提供几种选择:不分词(即 keyword 分词)、按单字分词、按单词分词、混合分词(即按单字又按单词切分)。

这些默认的选项能满足 80%~90% 的搜索需求,如果有定制需求,项目人员可以在这基础上自己扩展新的分词配置,一般来说是通过创建新的 TokenFilter 即可满足需求。

每个字段的分词方案决定了它能够提供的业务功能,比如在高级检索中是否支持模糊匹配、是否支持关键字查询、是否可以作为排序字段和聚合字段等等。这些支持的能力通过接口反馈到我们的上层应用中。

另外,还支持用户配置复合索引字段(即包含多个原始内容字段的索引)、全文索引字段(用于全文检索)和控制哪些字段进行高亮输出等等。

在不同项目中,我们可能会遇到各种各样特定的功能需求,而我们需要为之提供特定的索引配置方案。

举个例子,有些客户要求可以根据身份证号中的出生日期筛选人口数据,那为了完成这个功能,我们可以有两种方案:

  1. 使用 Elasticsearch 的通配查询,比如输入 19900203 可以获取正确的结果,但这样的查询性能是很差的,尤其是数据量大的情况下,因为要使用字符串匹配

  2. 第二种就是我们给定制一种新的分词方案,比如使用 Elasticsearch 的 Pattern Capture Filter,通过正则匹配把出生日期部分提取出来作为单独的 Term 进行索引,这样性能上会很好(尽管索引速度可能会受到一点点微不足道的影响)

除了每个字段的索引配置,还有其他的配置内容,比如影响索引输出结果的停用词表(把“得”,“的”,“了”等无用词去掉),影响分词准确性的分词词典等。这些资源也可以由项目人员进行修改更新。

在数据预处理方面,我们曾经考虑过多个方案:

第一个是使用 Elasticsearch 的 ingest API,这种方案好处是不需要自己开发额外程序,但 ingest API 是基于脚本的,使用起来不是很灵活,并且如果语法或者逻辑上有问题也不方便调试,所以我们放弃了。

第二个方案是我们可以去扩展 ES 的插件,这样会比使用 Ingest API 的脚本灵活,但需要部署到 ES 并经常维护时需要重启服务,对于我们的场景不是很适合,并且在 ES 里也很难调试。

最后我们决定自己开发预处理程序,并做成可插件化,这样好处有很多,一是灵活且项目可以很容易去定制,二是不需要部署并重启 ES 就可以直接使用(因为是外部程序),三是我们控制能力比较强,可以在并行性能上做优化,同时也减轻 ES 的压力。最后就是我们可以做到与底层引擎解耦,便于集成其他引擎,比如 Solr。

在预处理的过程里,我们预设了几种可用的处理插件,比如解析原始数据内容(比如文本内容抽取)、数据清洗操作(比如去重)、语言分析(识别数据所使用的语言种类)、通过 NLP 模块提取更有价值的信息,进行同义词扩展和拼音扩展等。在特定的业务场景里,项目人员也可以通过定制新的插件为索引的内容增加新的丰富信息。

那么在查询(Query)处理方面,我们也可以通过多种不同的操作对原始查询进行修改 (rewrite):

这里举了一个流水线的实例,首先查询内容经过语法分析,会分别分派到不同的处理器上进行处理,比如关键词中包含 * 或? 的字眼,我们会使用通配查询,对于包含逻辑操作符的查询我们会使用 QueryString 查询;

对于普通的文本关键词查询,会经过一个搜索意图分析模块,智能判断用户想查找的大概率是什么目标,这个分析结果会对后续查询的逻辑和排序造成一定的影响(比如通过设置权重)。

再者,通过结合用户的配置,可以识别出查询内容中包含的过滤条件项(比如“男性”)等,也可以进行查询阶段的同义词扩展,常见的场景就是对于行政区划地名会有不同的说法但其实指向的是同一个东西。

查询流水线跟预处理流水线一样也可以扩展新的插件实现不同的逻辑,最终得到的查询会被发送到底层搜索引擎进行查询。

搜索其实就是为了查找用户最想要的东西,那么搜索逻辑和相关度排序逻辑的结合就显得特别重要了。

在企业级搜索中,搜索逻辑往往要与业务需求相结合。

有些场景下,需要以字段为中心,即要求一个字段里必须包含查询的几个关键词;而在另外一些场景下则需要以关键词为中心,即用户只要求我输入的每个关键词都被命中了,不在乎是哪个字段命中。有些场景则需要结合两种思路才能得到合理的相关的结果。

作为示例,我们在搜索服务中默认提供两种搜索模式——精确模式和模糊模式,在精确模式下,要去输入的内容都有匹配,这个模式适合那些要求结果比较准确,无关结果尽量少的应用场景;而模糊搜索则只要求一个或部分关键词命中即可,这样召回的结果会比精确模式多,但相对也不那么精确,命中的越多也会更相关。

在排序方面,我们除了要考虑普通的文本匹配相似度之外(比如命中关键词个数、关键词在原文中距离、内容长度),经常还需要考虑其他的元属性(如日期、点赞数、评论数)。还可以考虑其他的业务规则。

常用手段包括 field boosting(加权重),重排序、词组匹配和 Function score query 等等

对于查询结果,除了使用 Elasticsearch 自带的 Highlighter 之外,我们还曾经在一些项目上提取文本的核心摘要内容来对输出结果进行概括,这一块也包括在后面提到的语义部分内容中。

客户的数据源有可能有多个来源,那么在展示结果的时候,我们支持对同源的结果进行聚合显示(单独查询)或者融合显示(多类结果合并排序)。

前面提到,在企业级搜索中安全是很重要的因素,因此我们在输出结果时也会根据当前系统用户配置的角色权限来判断是否要过滤 / 脱敏某些数据内容。

为了优化搜索效果,我们除了直接收集用户的评价之外,还需要通过程序化的方式收集用户的反馈,这属于搜索管理的一部分。通过结合 FileBeat、Logstash 和 Kibana,我们可以及时收集用户使用搜索的日志数据,并通过 kibana 的图形界面进行搜索点击结果的统计、性能的分析、badcase 的分析等等,通过分析日志可以改善我们的排序逻辑并形成正反馈。

结合语义的搜索方案

下面我们再介绍一下结合语义的搜索方案

大家都知道,现在已经是语义的时代,Google 在推出知识图谱搜索的时候有一句话“Things, not strings ”,意思是我们要寻找数据深层的含义,寻找更深层的答案。

我们认为目前搜索发展的方向是一个更广义的搜索,是要跟知识图谱结合起来的。传统的搜索虽然构建了索引帮助用户加速查找过程,但无法体现出数据的真正价值,因此语义搜索要解决的问题,就是更直接地给用户他想要的答案。而在广义搜索中,索引已经不仅仅是以倒排的方式存在了。

目前我们的搜索服务可以作为其他应用的一个入口,通过支持自然语言的搜索,可以使用户更快地获取到他想要的知识结果,比如查找 2016 年 8 月到 9 月从北京坐火车去过石家庄的男性,这个查询经过我们的查询处理和意图分析后,会得到右上角这些细致的条件信息,并在搜索系统中执行这一复杂的查询。可想而知,如果使用传统的功能需要经过多少步骤才能得到这个答案。

前面提到,我们会在数据预处理和查询预处理时进行一些智能的分析,这里会包括浅层和深层的语义分析,比如实体识别, 情感分析等,这些是用于丰富我们索引的数据,而深层语义分析则是可以帮助我们从原始数据中构建出一个具象的知识图谱。因此语义搜索,不单单是查询,也不单单是索引的问题。

说到这一块,我们下周会有一个关于知识图谱和语义搜索的产品发布会,也欢迎大家关注哈。

搜索案例介绍

最后我们来介绍一下我们做过的一些案例吧。

在公共安全领域,我们使用搜索来满足用户对知识图谱中的实体、关系和事件的查询,并支持多类数据的混合碰撞分析,前面提到的自然语言搜索就是在这个领域得到了较好的应用,因为数据本身比较复杂。而在社交分析领域,我们主要使用 ES 进行较多的数据聚合分析,前提也是做了比较多的浅层和深层语义分析;更常见的是,企业客户内部需要以搜索的方式查找内部的文档或者获取相关的文档内容。此外,在我们重点关注的公共安全领域,我们还通过搜索服务实现从人到案件,从案件到人,从案件到案件的案件比对系统,以及事件预警系统,给业务人员推荐有重点嫌疑的人和事。

所以,搜索应用远不止查找网页和文件。

问答环节

问:ES 的 index 的 shard 数量怎么确定?单个 shard 大小不能超过多少?

答:像我刚才提到,我们有一个索引分布的计算程序,通过指定数据规模和资源情况来计算,大概原理就是让每个 shard 能分到尽量多的计算资源,同时我们一般限制一个 shard 不超过 20GB。

问:ES 是建一个大索引好,还是建多个索引;这两种方式如何权衡?

答:ES 是一个分布式的方案,设计本意是充分利用分布式的性能,所以如果是大索引,也需要分成好多 shard,一个大索引好多 shard 跟好多个索引 + 较少的 shard,如果查询请求面向的数据范围是一样的,那其实没有太大区别。分成多个索引有一个好处,就是相当于分库了,比如人、车、手机三类数据分别用三个索引,那当你只想搜人的时候,是不需要搜其他两类的,而放在一个大索引会涉及到过滤其他数据,性能上还是会有损耗。

问:基于语义的 ES,关于这个“语义”是如何定义的,是语义相关性,还是可推导的语义搜索?关于这个语义模型,是 offline training 还是 online trainning?

答:我这里提到的语义,一方面是理解用户输入的内容从而自动地完成一个复杂的查询过程,另一方面是挖掘到数据里细粒度的有价值信息以及它们之间的关联; 2. 我们的语义模型更多的是 offline training。

问:目前我们利用 ELasticsearch 做基于地理位置的搜索,但是 ES 的 geo 搜索特别差,请问一下,怎么有效地提高 ES 的经纬度查询?另外,贵公司有没有 geo_point 类似的 case?

答: 我们目前也用了 ES 的 geo 搜索,但还没遇到特别差的情况(可能也跟具体项目的数据量有关),优化方式就要跟具体的数据情况和业务需求一起考虑了,可以考虑分库、二次过滤之类的方案;有的,前面我介绍时提到过地图搜索的业务功能。

问:我现在搞一套拼音搜索,想利用 ES,但就目前来看,ES 适合于中文搜索,很少用于拼音搜索。有什么好的建议么?ES 提供了丰富的查询方式,能给讲讲这些查询方式之间的性能区别么?

答: ES 有支持的拼音插件,可以在网上查一下,应该基本够用,如果要把拼音消岐做好(比如加上概率模型)那就需要自己研发模型了。ES 的查询方式太多了,不好简单回答,但最基本的查询是 Lucene 的 term query,match query 会转换为 term query,wildcard query 和 prefix query 的性能是比较差的,尤其是 wildcard 用 * 前缀时。

问:filebeat 与 logstash 在系统中收集采集的分工如何?logstash 的性能问题

答: filebeat 负责读取日志文件,把结果输出到 logstash,logstash 再把数据解析后送到 ES 建索引。

问:ES 目前的索引规模最大是多大啊?数据信息和元数据信息都是存在哪里的?当时选 ES 做搜索引擎的原因是什么?为什么实时数据和其他数据是分别存放和提供搜索的?

答: 我们目前接触过最大的索引规模是百亿量级的记录;在大量数据的场景下我们会考虑把原数据存放在其他数据库,ES 只放索引; 开源方案一般就 ES 和 Solr,其实功能上 ES 跟 Solr 虽各有侧重但是大同小异,并没有说用 Solr 不好,我们也在对接 Solr,只是 ES 对使用者是比较友好的,发展速度也比较快,而且在一些管理功能上做得比较好所以一开始选择了 ES; 实时数据和其他数据由于服务的场景不一样,所以分开放可以有的放矢。

问:知识图谱有没有用图数据库?是单机还是分布式,如何支持高并发?

答:我们构建知识图谱有使用图数据库,一开始使用的是 titan(我们公司同事曾经在 QCon 上做过知识图谱构建的分享,可以回顾下)。titan 是支持分布式的。

问:ES 有哪些比较好的性能可视化工具

答:我想是问免费的工具,有一个 elasticHQ 的可视化工具,可以试用下。

问:某种日志一天有一个 t 的量,希望同时实现入库快和查询快,这种情况是分多个索引存还是单索引设置很多分片,一般的配置原则是怎样的?

答: 面对大数据,无论是入库还是查询,都是要占用计算和内存资源的,所以首要条件是硬件尽量好,资源多,可以考虑进行集群的读写分离,分散不同请求的压力。关于是多个索引还是多个分片,前面有类似的问题,可以参考。在日志的这个场景,建议可以考虑按时间再细分索引(比如按小时),或者设置 ES routing 参数。

问:能否在 o2o 的场景下,利用 ES 来作为主搜,提供 C 端用户场景的搜索?除了初创的企业用 ES,面向用户端,能否也用 ES 作为搜索引擎,提供亿级用户的流量入口?

答: 可以使用 ES 作为面向 C 端的搜索,但在并发和集群优化上需要下很多功夫,我们主要是面向 B 端,所以能分享的不多见谅。

问:请教个问题: 我们在实际使用中 有很多聚合的页面,一个页面很多聚合。想问问老师这种应用场景之前有吗?适合用 ES 吗?

答: 有类似的项目,像刚才介绍的社交数据分析场景,就是用 ES 做的,ES 区别于 Solr 的一点就是更侧重数据分析,聚合功能做得还是比较细的。

问:ES 如何做好查询的相关性呢,既要保证查询的准确性,又要保证查询的查全?

答:准确率和查全率是两个有点互斥的指标,往往要根据业务指标从中间取个平衡点,比如结果虽然多但不会出现乱起八糟的结果(往往是索引方式的缘故)。相关度是个长期工作,没有 silver bullet。

问:请问你们是用什么语言开发 ES 插件的?

答:Java。

问:请问 ES 在节点超过 10 个,分片超过 1w 后,集群非常不稳定,查询经常出现超时问题,master 节点 ping 失败,不知是否和单索引 20 个分片有关?偶尔还会出现 old gc,但是日志中并没有明显异常会导致 gc,请教有没有好的分析方法?

答:这个很难说是什么原因,ES 有很多底层的操作是不太明显的,比如数据迁移、比如 index merge,数据多了之后都有可能,一般可以先从系统资源(io, cpu, mem)分析,以及 ES 提供的 task 查询 API 看看在做什么。

讲师介绍

陈智发,技术经理,搜索技术专家。北京大学计算机硕士。目前陈智发在明略负责核心产品 SCOPA 中搜索和自然语言处理相关的架构设计及研发工作,带领团队成员实现了从文本中构建知识图谱的功能、搭建了效果优良的企业级搜索引擎。2015 年加入明略初期陈智发曾带领团队完成明略大数据商业智能产品 Discovery 的前后端架构设计和后端程序开发,对数据仓库和商业智能产品开发有丰富的经验, 是 Apache 开源项目 Calcite 的 contributor 。在加入明略之前,陈智发曾工作于虚拟化技术巨头 VMware 北京分公司,在桌面虚拟化技术部门担任开发工作,对服务器虚拟化技术、云计算技术有较深的理解。

独家 首发 2018百度+微信公众号品牌续航计划 50个百度首页搜索入口推广律师 百度力推的全新模式

百度推广是效果最好的方式,但同时也是最贵的。

医疗行业平均每年的百度竞价费用超过千万;

京东每年百度推广费用2个亿;

阿里每年百度推广费用3个亿

……

法律行业做百度竞价每年至少10万元。

这样高昂的成本,让绝大多数人望而却步,其中也包括律师。

百度,占据国内搜索市场80.64%的份额,在移动端市场份额百度占了88.81%,百度是13亿中国人上网搜索必须的工具,律师推广当然也无法忽视这个巨大资源。

∧数据来源:2017年11月搜索市场排行榜

除了竞价排名,就没有一个效果更好、展示更稳定、费用更低的推广方式了吗?

当然有!百度2018年最新推出的百度律师品牌续航计划,就是一个不同于百度竞价的全新模式——同样是在百度大首页推广,但是花费的成本却很低!

好消息

智飞微信通已经与百度方面达成了2018年律师推广战略合作!百度大搜50个热门法律搜索词,全年不下线,大首页稳定位置展示,让律师低成本享受到百度大首页推广的成果。

价值一

50个热门法律搜索词!

竞价最热、当事人最常搜!

(∧暂定意向词,以实际上线的关键词为准)

价值二

百度大搜首页固定展示!

全年不下线、位置稳定!

智飞精选的搜索关键词,可以稳定在百度搜索首页,固定1年时间展示,排名稳定,不掉线、不随机,长期为律师进行品牌宣传推广。

(∧单个关键词展示效果演示,以实际上线为准)

价值三

微信公众号+百度推广

为律师公众号品牌续航!

智飞推出的百度律师推广服务,可以直接展示律师自己的公众号和微网站,让资源更聚合、让品牌更集中、让推广成本更低!

价值四

百度文库+百度大搜流量导入,

两大百度官方产品通力合作!

除百度大搜的50个高流量关键词之外,律师还将额外获得5亿PV的百度文库展示,让当事人在查阅文档、搜索法律知识的时候也能咨询律师。

要花多少钱?

●百度大搜首页展示,价格只相当于百度竞价的1%!

●50个法律热门搜索词,1年时间稳定展示!

2017年12月28日之后加入的律师将每年加取3000元。

为什么要预售?

●智飞与百度方面达成的合作为2018年律师推广计划,百度需要对关键词、律师资质、上线页面进行提前审核,因此我们需要先邀请部分优质律师加入。

●仅限3天,2017年12月28日24点之后,将正式提交百度审核,等待最终上线。

●提前加入的律师,也将按照最终上线时间计算展示期限。

百度律师推广,预售开抢!

仅限3天!合作律师微网站即可在50个热搜关键词中展示1年,中国最大知识分享平台百度文库+百度大首页 稳定排名展示,长期引流!截止到2017年12月28日24点,届时将提交百度方面审核等待正式上线,之后所有律师加入将加收3000元/年!

抢占热线:4006-186-116

或微信回复:地区+姓名+电话

或加QQ/微信:1930723417

好消息 Facebook的搜索功能将为用户提供全站服务

Facebook周四宣布,将扩大其搜索功能范围。用户将可以搜索全部的公开信息,而不仅仅是朋友和喜欢的页面。搜索结果将以专业新闻机构的消息为优先,接下来将是朋友的帖子。该搜索功能让Facebook的用户可以获得更广泛的信息。而不仅仅是寻找聚会和熟人的工具。它现在成了一种新闻获取工具,而这曾经只有Twitter才有办法胜任。

因为Facebook承载了用户大量的上网间,社交网络上的帖子已经超过2万亿条。现在Facebook的搜索团队正在增加更多的人机交互功能,目前每天搜索量在15亿。Facebook俨然成为了一个巨大的资源库。

本月Twitter推出了新的Twitter Tab服务,让用户更快速地掌握每天所发生的事情。包括新闻、生活事件、体育和各种在网络上肆虐的病毒式话题。而Facebook的搜索功能提供了一个直接挑战该服务的方式。它希望用户不要去Twitter了解正在发生的事情,而是留在Facebook进行搜索。

企业:中国搜索加大线下推广 致力打造权威搜索品牌

原标题: 企业:中国搜索加大线下推广 致力打造权威搜索品牌

东方网6月29日消息:近日,在京沪线和京广线繁忙运营的高铁车厢内,最新发布的中国搜索广告海报引人注目,成为一道亮丽的风景线。

画面中,几个朝气蓬勃的年轻人自信从容、面带微笑。上方是醒目的中国搜索中英双语标识,搜索框内的提示词——“您可信赖的搜索”,凸显“国家权威搜索”的品牌定位。通过手机扫描下方二维码,用户可下载“手机国搜”移动客户端,或直接进入中国搜索的WAP页面。

据国搜品牌推广部负责人透露,中国搜索日前开始加大力度,塑造和推广自身专业、综合的互联网应用平台的品牌形象。其中,今年6月至9月,计划在京沪线和京广线,以及北京城区特12和300快公交车分别投放海报广告和车身广告,将中国搜索坚持创新、服务大众的理念更好地传达至沿线城市的互联网和移动互联网用户。

从公交投放的线路来看,特12和300快分别环绕京城二环三环各一圈,途经京城人流密集区域;而高铁的广告投放则选择在暑期客流量最大、群体最为集中的京沪线和京广线,高铁提供的快捷、安全、优质、高效的乘车体验与中国搜索追求的品牌服务标准高度契合。

中国公交、高铁发展迅猛,有效提升了百姓的出行速度和效率,已赫然成为中国走向世界的名片。同样,中国搜索近年来规模和业务飞速发展,公司充分发挥技术、产品、内容等各方面的优势,在为网民提供优质、权威、可信赖的搜索内容服务的同时,探索更加多元化、个性化的服务。中国搜索在互联网+应用服务领域砥砺奋进,不断通过推出新应用、新产品、新服务、新平台,为广大网民带来实际的便利。

此间互联网观察人士指出,目前,除北京等一线城市外,中国搜索用户还逐步向济南、大连、郑州等二三线城市扩展。中国搜索此次通过庞大的公交和高铁网络开展线下推广活动,势必有利于其完善自身品牌的立体化传播渠道。

有网友表示,中国搜索此次线下推广拉近了平台与网民之间的距离,品牌认知度明显提高,“二维码扫描便捷顺畅,安装后便能第一时间浏览时事热点新闻和感兴趣的话题,乘车不再枯燥无趣”。另外,中国搜索选择高铁公交作为宣传渠道,彰显出亲民化、大众化的平台定位,真正做到“人民的搜索,百姓的搜索”。

中国搜索是由人民日报、新华社、中央电视台等七家中央新闻单位联合创办的国家权威搜索和互联网综合应用服务平台。通过两年多的艰苦努力和技术、产品、应用、服务优化升级,中国搜索的社会知名度和影响力不断提升,用户已覆盖到全球200多个国家和地区。中国搜索积极参与国家创新驱动发展战略和“互联网+”行动计划,充分发挥国搜平台的技术、传播和应用服务优势,为广大网民提供专业可信的技术平台支持保障。

SEO逆向思维 搜索需求覆盖|CTUFO SEO优化

与其把更多精力放在麻烦的排名上面,不如把更多时间放在挖词且给它们找到合适的着陆页上面。在SEO体系里面,将这点称为搜索需求覆盖。根据各类网站的经验,做好搜索需求覆盖比做好排名容易提升流量得多。

SEO逆向思维

如今大多数的SEO人其实更多的只是在乎“排名”了

大家都知道,其实对SEO优化来说,最基本,或者说最根本的,无非就是对网站关键词排名的优化!说白了就是给我们的网站产品或者服务等找到最符合用户搜索的词汇然后优化上去!

这么说吧,本来我们想要做一个地域类类型的网站,但发现在部署大概的有关地域SEO的关键词之后,忽然发现诸如其他类的地域词可能排名要比网站本身地域类关键词好!那我们有限的精力下要怎么办呢?当然是尽量持续的对网站本身地域类关键词进行拓词、找词、部署关键字等以持续优化它,而不是转而想着是不是可以从其他地域类的关键词中分一点儿流量蛋糕呢?因为我们做网站本身地域类关键词一定意味着网站内容可能更多是与网站相关性最高的!可能大家都感觉不论哪个地方的SEO都是一样的技术,但是不要忘了,搜索哪个地域词进来的用户一般都是想直接找到该地域的网站的!这么说吧,如果网站里有一些比如针对该地域人圈子聚会的一些活动,是不是似乎像这些词就不太好替换呢?更何况,这只是一些最基本的地域性网站而已,还有其他划分类型更清楚的网站呢?

把更多精力放在挖词且给它们找到合适的着陆页上

所以,综上针对SEO网站的选词优化规则,我们不能单单的只根据在网站初期大概选择网站主题关键词之后,就直接按照后续哪个词有排名了就把精力都放到那个可能跟我们网站不相关的词上!而忽略了我们的重点词,导致主题不明确…而这样的结果最终可能会背离我们的主题,影响流量变现等!因为现在越来越智能化的搜索引擎、用户搜索词汇越来越口语化的今天,流量从来都不是直接影响网站盈利能力最重要的因素了!换言之,我们要给客户和搜索引擎提供最精准、最有价值、最有变现能力的TDK、着陆页和内容等。

搜索需求覆盖

SEO搜索需求其实大家应该都能理解,无非就是“搜什么出什么、搜什么有什么”,不过这句话有点太广义,其实最简单的,也就是说能够把自己网站产品所有能带来流量的关键词最好都能尽可能的全部部署!当然“全部”这个词似乎不太合适,因为没有哪个站能真正做到对某个行业彻底的覆盖!但,道理应该是这么个道理的…而且最重要的是我们不能被网站和搜索引擎带着走,而应该在网站策划初期将网站定位好之后,一步一步朝着网站的初期目标来做!也就是说,我们需要有SEO中的“逆向思维逻辑!”

SEO思维

就是做流量的网站需要搜索需求覆盖吗?其实不一定,我们不排除有些网站只是为了通过流量来打广告,以便自己从中获利。网站的定位从一开始就需要明确,在拥有明确的定位之后,即使目标看似非常远大,非常难以实现,但通过确立目标,并将其分解成一个个目标的分支,使之一步步达成。建议通过长尾关键词开始做起,与其相关的标题、关键词、文章内容等来达到SEO优化。

每位网民都有其独特的搜索习惯,这些习惯也造就了各种不同的搜索因素,通过这些不同的因素来进行SEO优化达到我们想要的效果,这不正是我们SEOer可以做到的嘛。

本文改编自:辛永宝SEO博客

从 百度指数人群画像 看看各省市的股民搜索指数排名

省份搜索热度排名

股票作为一种金融产品,应该也是资本市场里最为人知的一种产品了。

百度搜索大数据中,以“股票”为关键词搜索,在“人群画像”栏目中,可以看出各个省市广大股民的搜索排名。下面就然我们来用大数据来了解股民们的分布 吧!!

省份搜索指数排名

身份排名中可以看出都是经济比较发达的城市。

区域搜索指数排名

区域排名也明显的按照经济发展程度降序排列。

城市搜索指数排名

北上广深果然是一线城市,牢牢占据城市榜单前四名。入选的十个城市肯定是高净值收入比例最高的城市。如果来评选“新一线城市”,拿这个榜单来,应该很有参考价值。

股民们的年龄分布

图标中明显看出来20-49岁人群占据95%以上的比例,而30-49岁人群占比高达75%以上,也是很显然这部分人群有稳定的收入来源,比较具备冒险精神。

从以上几幅表格中可以总结出:股票作为一种金融产品和资本市场的游戏,参与者的活跃度与其所处地区的经济发达程度和个人收入水平是正相关的。

欢迎留言分享谈论!

百度简单搜索回应 推出网页版 从未推出过这项服务

图片版权所属:站长之家

站长之家(ChinaZ.com) 3月25日 消息:近日,有媒体报道称,百度推出了百度简单搜索网页版。不过经过查证,该网站为假冒网站,网站服务器IP地址显示为美国,并且没有备案,域名创建时间仅为1个月。

对此,今日简单搜索APP官方微博发布声明回应称,百度公司没有推出简单搜索网页版。由于简单搜索的各项功能受限于PC或手机网页端的形态而难以实现,所以未考虑推出PC版或手机网页版服务。

以下为简单搜索APP声明全文:

我们注意到关于“百度推出简单搜索网页版”的相关报道,在此特别声明,百度公司没有推出简单搜索网页版。

简单搜索是百度公司2017年推出的一款搭载百度多项人工智能能力的搜索APP。在APP内可以通过语音搜索、图像识别、语音播报等人工智能技术,提升搜索服务的体验和效率,但这些能力受限于PC或手机网页端的形态而难以实现,所以未考虑推出PC版或手机网页版服务。

感谢大家的关注,欢迎大家下载百度APP或简单搜索APP,体验更好更智能的搜索及信息服务。

百度推出网页版“简单搜索”?经查询为山寨网站

辛苦搜索来的免费健身运动APP应用

工作久坐?整天要面对电脑?三餐饮食不规律?难挡美食诱惑?……”

众多原因都让深处职场的白领健康大打折扣,你是不是会时常感到颈椎不舒服?肌肉变的越来越松弛?小腹正日渐隆起,当年的六块腹肌,也变成了一整块腹肌~你是否感到满面黑线?怎么办?面对不知道从何学起的各种健身教程,你是否感到茫然?看到遥遥无期的运动计划,你是否感到坚持不下去,运动的热情,也和天上的善变云彩一样,或保持的长,或只是昙花一现。

真的没有两全其美的办法了吗?当然不是!看网络上这些正兴起风靡大众的运动健身应用吧,有的能逐步帮你提升个人运动能力,有的能像贴身健身教练一样指导你,有的能够快速提高你的身体素质,甚至在运动中体验和分享更多的快乐,这些APP不仅能让你拥有一个健康的身体和超性感身材,还能让你爱上运动!

去动

一个让你爱不释手的运动社交app

OneFit健身学院创始人——陈蕴(Jordan Chen),UNDER ARMOUR中国唯一签约教练兼品牌顾问,遂生学府签约导师,上海公安特警学校特聘体能教官,NSCA美国体能协会讲师,ChinaFit中国健身大会讲师。

所有训练动作均由陈蕴及顶级教练进行精准视频示范,文字描述浅显易懂,帮助你全面掌握动作要领,提升训练质量。

根据在线体测结果以及个人训练目标为基础,结合训练导师10年以上专业培训经验积累,为每个人量身定制最科学有效的健身锻炼计划。

Nike Training Club(iPhone/免费)

最近感冒发烧的人一天天增长,拥有好的身体免疫力靠的是平时的锻炼啊!

让女生也爱上运动

Nike大家都很熟悉,是著名的运动品牌,Nike Training Club(Nike训练营)正是该公司开发的一款运动辅助软件。Nike训练营为你提供随时随地的个人训练师,其中提供85项量身打造的运动计划,帮你打 造窈窕体态、美丽曲线和强健体能。获得额外奖励运动计划,例如明星Lea Michele、专业运动员Shawn和Rihanna的专属训练师Ary Nu?ez等提供的训练。

NIKE针对年轻女性推出NIKE Training Club线上训练课程,融合了瑜珈、跑步等元素,量身打造个人的运动计画,女孩们可以根据自己的运动需求,选择适当的运动强度与频率。NIKE还贴心地设计了周期性的运动课表;除此之外,每项动作都是由国际级健身教练透过影像实境指导,就好比拥有专属健身教练贴身指导一样,让女生也爱上运动。

咕咚运动+ iOS/Android 免费

轻轻松松获得健美身材

这是一款LBS运动激励应用,能够比较精确的追踪用户的运动路线、距离以及速度,实时监测运动数据,可以根据你的身高体重来计算你的卡路里燃烧,逐步提升你的个人运动能力,改善你的身体素质,能实现减肥健身的效果。

作为苹果AppStore上最受欢迎的运动健身减肥应用之一,咕咚运动不但可以精确记录各种运动,还可以把你的运动成果通过微博、微信等“秀”好友看,更可以约周围的朋友一起运动、PK、挑战你的极限!让你体验快乐、科技与时尚,轻轻松松获得健美身材!

100个俯卧撑 专业版

型男必备工具!

啥都不说,只问这一句,你知道善于做俯卧撑的男人性能力更强吗?

为了让自己有结实性感的腹部,尤其在实施“男上位”性爱方式时,强壮腹肌会发挥巨大威力。那么你还犹豫什么?

“100个俯卧撑”说,为达到我这个目标,我们需要的是一个完美的计划,一些适当的规则和每周30分钟的训练,每周将被要求做3次训练,当然在训练的过程中,你可以随时关注你的排名,非常科学的训练方法!通过做俯卧撑的方式, 一步一步的帮助增强您的肌肉耐力。塑造惹火喷血的完美身材!

100个俯卧撑 其最大的特点就是根据你目前的能力设计训练计划,按照训练计划有休息间隔的完成训练。在很短的时间内即可打成 100 个俯卧撑的训练任务。

瘦身战争

为好身材而战

主要是面向女性用户,定位是体感瘦身+社交游戏。

这是一款社交+竞技的瘦身应用,主要面向女性用户。应用内有一个虚拟教练,你可以跟着她做一些运动。应用会根据你的年龄、体重、身高来计算你每天应该完成的运动量。从腰、腹、腿等多个方面帮助女性解决重塑体型的问题。

该应用提供3种运动模式:单人、双人以及多人竞技。后面两种模式中,如果你在比赛中获胜就可以获得一定的金币,从而增强你的运动积极性。而这些金币可以用来为自己购买虚拟头像、运动背景或兑换其他礼品。

《瘦身战争》被誉为全球第一款利用碎片化时间,帮助女孩瘦身的“体感+社交”游戏。Appstore日本区Health排行榜第一名,中国区Health排行榜前三名。这款应用已申请5项发明专利,是随身携带的Wii Fit。

谷歌为Android手机推出内容搜索工具In Apps

谷歌本周宣布针对Android智能手机推出一种内容搜索工具,这种名为“In Apps”的工具能让用户找到深藏于手机上安装的应用内部的内容。

举例来说,用户可直接通过这个工具搜索查找特定歌曲、好友或注释,而不是非要首先打开相关应用才能搜索。用户可在谷歌搜索应用点击一个新的“In Apps”标签来获取这种功能,该工具可通过Gmail、Spotify和YouTube进行分析,谷歌计划随后将更多第三方应用加入In Apps支持,如FacebookMessenger、LinkedIn、Evernote、Glide、Todoist和GoogleKeep等。

谷歌还表示,有些手机将可使用一种特别的In Apps主屏快捷方式,其中LG计划在9月5日宣布推出的LG V20将是第一种支持这种快捷方式的手机。