设计和一般问题 - 弹性搜索嵌套

时间:2016-07-05 01:47:52

标签: nest elasticsearch-net

我刚开始使用Elastic搜索,必须使用nest客户端。我对索引的设计几乎没有疑问。有人可以帮我回答。

  1. 是否可以跨不同类型进行全局搜索?对于 例如:我的网站上有论坛帖子,维基页面和博客页面。所以 当我搜索一个单词时,我可以跨这三个进行全局搜索 并生成结果。如何索引文档来实现这一目标? (最好的例子:谷歌搜索。搜索弹性,它显示结果 跨网页,图像,视频等)

  2. 我正在阅读自动完成的文档并遇到过     另一个函数上下文建议器。有什么区别     这两个?从文档中可以清楚地看到自动完成     在我们键入时(基于我们使用的分析器)建议和填充单词之类的东西,在上下文建议器中我们已经预定义了这些建议。我的理解是否正确?但是我     不知道在哪个上下文做     我们使用自动完成和上下文建议器。

  3. 除了弹性指南之外还有其他资源吗?     巢?

  4. 对于非常普通的问题感到抱歉(正如我所说,我对弹性搜索完全不熟悉)。不知道我是否可以在这里提出这些问题。

    提前致谢。

1 个答案:

答案 0 :(得分:3)

  1. 是的,可以在同一索引和不同索引中跨不同类型执行全局搜索。

    一般建议每个索引只有一种类型(除非你有充分的理由不要太多,例如文档之间的父/子关系,应用程序中类型之间的层次继承关系)。想象一个类似预定义过滤器的类型。许多功能在索引级别工作,例如完成建议器,文档字段类型,因此具有单独的索引可以减轻一些混淆的可能原因,并且当不再需要其中的文档时删除整个索引是快速操作(与删除要保留的索引中的许多文档相比)。

  2. Completion suggester和Context建议器非常适合您在键入"时需要提供"完成的情况。由于他们使用的Finite State Transducer (FST) data structure,它们非常快;基本上只需要评估当前节点(类型字符)后面的图形路径以提供建议。

    由于这两个建议者使用FST,因此您无法像使用反向索引数据结构的搜索一样使用查询DSL过滤器。 Context Suggester本质上是Completion建议器的扩展,它以类别(一组术语)或与完成数据相关联的地理位置的形式提供一些过滤。

    将建议与其他搜索方法结合使用以形成整体策略通常很有用。

  3. Elasticsearch Definitive Guide Online 是一个很好的资源,由两个Elastic成员编写,并根据新版本进行更新。您可能会发现实用的其他资源包括Elasticsearch in ActionRelevant Search。查看the NEST documentation开始使用,如果您有任何疑问, the discussion forums 可能是最好的地方,可以作为Elastic以及更广泛的IR的广泛人群提出问题/搜索社区经常光顾他们。