【问题标题】:Running Query versus a Query Search Query via Nest client?通过 Nest 客户端运行查询与查询搜索查询?
【发布时间】:2021-09-17 13:13:08
【问题描述】:

我是 ElasticSearch 的新手,正在编写基本的搜索查询。我希望能够在全文字段中搜索关键字。我知道这可以使用查询搜索查询来完成,但我不清楚如何使用 Nest 客户端来完成。

var searchResponse = client.Search<mdl.Event>(s => s
                .Query(q => q
                .Match(m => m
                    .Query(search.Text))
                && q
                .DateRange(r => r
                    .Field(f => f.CreatedTimeStamp)
                    .GreaterThanOrEquals(search.From)
                    .LessThanOrEquals(search.To))));

这是我的代码。基本上,我试图在某个日期之间搜索一些文本,但我相信上面不是在正文中搜索代码。有没有办法可以轻松更改此查询以便搜索整个身体?还是它已经这样做了,我不知道?

我正在搜索集群中的事件。一个事件的示例可能如下所示:

{
  "text": "string",
  "includeExecution": true,
  "processIds": "string",
  "statuses": [
    "string"
  ],
  "space": "string",
  "from": "2021-09-17T01:40:03.796Z",
  "to": "2021-09-17T01:40:03.796Z",
  "take": 0,
  "skip": 0,
  "orderBy": "string",
  "orderByDescending": true
}

就我而言,我希望能够搜索“字符串”这个词并得到这个结果(因为“字符串”存在于空间中)

【问题讨论】:

  • 您能提供您正在搜索的字段的映射吗?
  • @Val 究竟是什么意思?对不起
  • 您能否展示一个示例文档以及您要搜索的内容?
  • @Val 这有帮助吗?

标签: elasticsearch


【解决方案1】:

尝试像这样使用QueryString 查询。这将在您文档的所有字段中搜索search.Text

var searchResponse = client.Search<mdl.Event>(s => s
            .Query(q => q
                .QueryString(qs => qs
                    .Query(search.Text))
                && q
                .DateRange(r => r
                    .Field(f => f.CreatedTimeStamp)
                    .GreaterThanOrEquals(search.From)
                    .LessThanOrEquals(search.To))));

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-01
  • 1970-01-01
  • 2013-05-05
  • 2015-05-10
  • 1970-01-01
  • 1970-01-01
  • 2018-11-09
相关资源
最近更新 更多