Elastic Search 应用

编辑

搜索应用 使用户能够构建基于搜索的应用程序,这些应用程序利用 Elasticsearch 的全部功能及其查询 DSL,并提供简化的用户体验。基于您的 Elasticsearch 索引创建搜索应用,使用搜索模板构建查询,并在 Kibana 搜索 UI 中直接轻松预览结果。

您还可以使用 搜索应用 API 与您的搜索应用进行交互。搜索应用旨在简化使用 Elastic 平台构建跨一系列企业搜索用例的统一搜索体验。

可用性和先决条件

编辑

搜索应用功能在 Elastic 版本 8.8.0 中引入。

搜索应用是一项 beta 功能。 Beta 功能可能会发生更改,并且不受一般发布 (GA) 功能的支持 SLA 涵盖。 Elastic 计划在未来的版本中将此功能推广到 GA。

此功能适用于所有 Elastic Cloud 部署。

当满足 Elastic 订阅要求时,此功能也适用于 自管理 部署。 在 Elastic Stack 订阅页面的 Elastic Search 部分下查看此功能的要求。

您的部署必须包括 Elasticsearch 和 Kibana 服务。

管理搜索应用需要 manage_search_application 集群权限,还需要对与搜索应用关联的所有索引具有 manage 索引权限

概述

编辑

Elasticsearch 查询 DSL 功能强大且灵活,但它具有陡峭的学习曲线。复杂的查询很冗长,对于非专业人士来说很难理解。我们设计了搜索应用程序,使其更易于搜索,但同时具有使用 Elasticsearch 索引的灵活性。

搜索应用使用 搜索模板 来简化构建查询的过程。模板在创建搜索应用程序时定义,并且可以根据您的需求进行自定义。阅读 搜索 API 和模板 了解详细信息。

开始使用

编辑

选项 1:在 UI 中开始使用

编辑

您可以直接在 Kibana UI 中 搜索 下创建、构建和管理您的搜索应用程序。确保您的部署上至少有一个 Elasticsearch 索引可供使用。 搜索应用程序的基础索引会被一起搜索,类似于 别名 在多个索引上进行搜索的方式。

在 Kibana 中创建新的搜索应用程序

  1. 转到 搜索 > 搜索应用
  2. 选择 创建
  3. 选择要用于搜索应用程序的 Elasticsearch 索引。
  4. 为您的搜索应用程序命名。
  5. 选择 创建

您的搜索应用程序现在应该在搜索应用程序列表中可用。

创建后,您可以在 搜索 > 搜索应用 > 你的搜索应用 > 文档浏览器 下浏览您的搜索应用程序中的文档。 从那里,您可以展开匹配的 Elasticsearch 文档以查看其全部内容。

选项 2:开始使用 API

编辑

使用 Elasticsearch 放置搜索应用 API 来创建搜索应用。

以下示例创建了一个名为 my_search_application 的搜索应用程序,该应用程序在 my_search_index1my_search_index2 索引上进行搜索,同时定义了一个简单的搜索模板(请参阅 默认模板示例)。

resp = client.search_application.put(
    name="my_search_application",
    search_application={
        "indices": [
            "my_search_index1",
            "my_search_index2"
        ],
        "template": {
            "script": {
                "source": {
                    "query": {
                        "query_string": {
                            "query": "{{query_string}}",
                            "default_field": "{{default_field}}"
                        }
                    }
                },
                "params": {
                    "query_string": "*",
                    "default_field": "*"
                }
            }
        }
    },
)
print(resp)
const response = await client.searchApplication.put({
  name: "my_search_application",
  search_application: {
    indices: ["my_search_index1", "my_search_index2"],
    template: {
      script: {
        source: {
          query: {
            query_string: {
              query: "{{query_string}}",
              default_field: "{{default_field}}",
            },
          },
        },
        params: {
          query_string: "*",
          default_field: "*",
        },
      },
    },
  },
});
console.log(response);
PUT /_application/search_application/my_search_application
{
  "indices": [ "my_search_index1", "my_search_index2" ],
  "template": {
    "script": {
      "source": {
        "query": {
          "query_string": {
            "query": "{{query_string}}",
            "default_field": "{{default_field}}"
          }
        }
      },
      "params": {
        "query_string": "*",
        "default_field": "*"
      }
    }
  }
}

搜索模板

编辑

搜索模板是您搜索应用程序的核心。 为搜索应用程序创建的 默认模板 非常简单,您需要对其进行自定义以满足您的需求。搜索 API 和模板包含许多帮助您入门的示例,包括默认模板,以及用于文本搜索、语义搜索和混合搜索的模板。