elasticsearch - 使用 Elasticsearch 的关键字搜索

标签 elasticsearch full-text-search keyword-search

我是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实现此功能吗?

提前致谢!!

最佳答案

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

  • 最好在架构中再创建一个字段(类型可以是datetime,timestamp),然后对该字段执行范围查询。因为它将要非常频繁地使用,并且您的数据将以时间序列的方式存储。
  • [不推荐使用]如果您的字段类型是存储整个字符串的“关键字”,则需要对'%youstring'使用通配符查询。但这只会返回部分数据。当然,这是沉重而缓慢的。就像在SQL中查询一样。
  • [不推荐使用]如果您的字段类型是“文本”,则需要检查是否创建了日期时间术语。这也只是返回部分数据。

  • 最好根据您的搜索查询来设计架构。第一种选择对您来说更好,它将有助于将来扩展。

    关于elasticsearch - 使用 Elasticsearch 的关键字搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58456829/

    相关文章:

    mysql - MySQL FULLTEXT 是部分单词的最佳解决方案吗?

    solr - 在solr中禁用facet字段的小写

    php - 使用带有 PHP 的 Google AdWords API 获取关键字每次点击费用和每月搜索量

    javascript - 王牌编辑器 : How to implement both custom auto completion and default basic auto completion at the same time?

    document - 文档与多个关键字的相关性

    c# - Elasticsearch Nest查询可在将字段与提供的值进行比较时修剪空白

    java - Spring Boot Elasticsearch 配置

    elasticsearch - 如何找到elasticsearch的预定义翻转条件?

    elasticsearch - 什么是选举的Master elasticsearch的作用(ELK堆栈)

    search - Solr 中的 CopyField 似乎不起作用