【问题标题】:elastic search fulltext search on multiple index弹性搜索全文搜索多个索引
【发布时间】:2020-05-10 16:58:29
【问题描述】:

弹性搜索的设计查询:

我的 mysql 数据库中有 10 个表:新闻、电子邮件等。我会将它们同步到 elasticsearch。我想同时搜索所有这些表。 表中没有关系,并且都有txt 字段。只想在txt 字段中搜索.. 所以我应该有多个索引还是只有 1 个索引。

我应该如何组织我的索引:

选项 1:我是否应该为所有表设置一个弹性搜索索引(具有表类型属性)

选项 2:我是否应该为所有表设置多个弹性搜索索引

考虑:

  • 想要在多个按命中排序的数据源中进行组合查询。示例:搜索所有电子邮件 + 新闻 ..
  • 或仅搜索电子邮件或新闻的单个查询

【问题讨论】:

  • 需要更多上下文。一般来说,您需要展平您的表格......展平取决于表格关系是什么?您要实现的具体查询是什么?
  • 表中没有关系,并且都有txt字段..只想在txt字段中搜索..所以我应该有多个索引还是只有1个索引..

标签: elasticsearch


【解决方案1】:

拥有多个索引并在任何给定时间查询任意数量的索引:

POST emails/_doc
{
  "txt": "abc"
}

POST news/_doc
{
  "txt": "ab"
}

GET emails,news/_search
{
  "query": {
    "query_string": {
      "default_field": "txt", 
      "query": "ab OR abc"
    }
  }
}

通配符索引名称也是supported,以防您有时间戳存储名称,例如emails_2020emails_2019 等:

GET em*,ne*/_search
...

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-03
      • 2017-11-25
      • 1970-01-01
      • 2021-05-18
      • 1970-01-01
      • 2023-01-31
      相关资源
      最近更新 更多