【问题标题】:Keyword search using Elastic search使用弹性搜索的关键字搜索
【发布时间】:2019-10-18 19:07:22
【问题描述】:

我是 Elasticsearch 的新手,我正在尝试使用 Elasticsearch 实现 文本搜索 功能。
我有超过 100 个文档,每个文档都有以时间戳记。

例如

00:00:00 - 00:01:00这是第一行

00:01:01 - 00:02:30这是第二行

00:02:30 - 00:03:45这是第三行

00:03:46 - 00:05:00这是第四行

00:05:01 - 00:06:00这是第五行

...

等等。

我将这些行中的每一行分成不同的段落,并对文档执行文本搜索。

现在,我想按关键字搜索,其中将定义 1 个或多个关键字,假设时间戳 00:00:00 - 00:05:00 之间的行。
所以根据关键字搜索,应该返回来自00:00:00 - 00:05:00 的全部数据。与这些时间戳之间的所有行一样,应根据关键字搜索返回。

能否请您帮助我了解如何使用 Elasticsearch 实现此功能?

提前致谢!!

【问题讨论】:

  • 您需要对时间戳范围进行范围查询

标签: elasticsearch full-text-search keyword-search


【解决方案1】:

据我了解,以下是我的看法:

  1. 最好在架构中再创建一个字段(类型可以是日期时间、时间戳)并对该字段执行范围查询。因为它将非常频繁地使用,并且您的数据将以时间序列的方式存储。

  2. [不推荐]如果您的字段类型是“关键字”,您存储了整个字符串,那么您需要使用带有“%youstring”的通配符查询。但这只会返回部分数据。当然,它的成本很高而且速度很慢。类似于 SQL 中的查询。

  3. [不推荐] 如果您的字段类型是“文本”,那么您需要检查是否创建了日期时间条款。这也是只返回部分数据。

最好根据您的搜索查询来设计您的架构。第一个选项对您来说会更好,并且有助于将来扩展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 2018-10-26
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多