当前位置: 首页 > 面试题库 >

NEST(elasticsearch)在多个领域突出显示

傅献
2023-03-14
问题内容

我已经使用Nest成功地获得了结果和突出显示,但是如果我在其中搜索突出显示的两个字段中都仅使用了Elasticsearch查询的最后一个字段。例如以下

.Query(qry => qry
    .QueryString(qs => qs
        .Query(qString)
    )
)
.Highlight(h => h
    .PreTags("<b>")
    .PostTags("</b>")
    .OnFields(f => f
        .OnField("Title")
        .OnField("Summary")
    )
)

表示我只能从“摘要”字段中获得突出显示。如果我直接使用等效查询查询elasticsearch,则可以从两个字段中检索突出显示。例如

{
  "query": {
    "query_string": {
      "query": "apple"
    }
  },
  "highlight": {
    "pre_tags": ["<b>"],
    "post_tags": ["</b>"],
    "fields": {
      "Title": {},
      "Summary": {}
    }
  }
}

Nest有可能做到这一点吗?难道我做错了什么?


问题答案:

每个突出显示的字段都需要一个单独的“ .OnField”。

.Highlight(h => h
    .PreTags("<b>")
    .PostTags("</b>")
    .OnFields(
        f => f.OnField("Title"),
        f => f.OnField("Summary")
    )
)

在这里查看另一个示例



 类似资料:
  • 问题内容: 我正在实现一个使用Realm在某些点(彼此之间不相关)持久化数据的应用程序。例如: 保存用户喜欢的项目。 (该应用进行聊天)保存聊天对话和最近的常量 为应用程序的某些请求实现永久性缓存 保存最近的搜索/表单以提供自动完成功能 (让这些点中的每一个都命名为模块/包) 每个模块/软件包都有一些持久性。我应该如何组织呢?从代码清洁度,性能或我应注意的任何方面考虑 选项A:使用具有唯一架构的唯

  • 问题内容: 我已经使用n- gram标记器在elasticsearch中提出了自动建议。现在,我想在自动建议列表中突出显示用户输入的字符序列。为此,我使用了elasticsearch中可用的荧光笔,我的代码如下所示,但是在输出中,完整的术语被突出显示了我要去哪里了。 结果是 映射 设定 如何突出显示软件而不是软件开发。 问题答案: 在这种情况下,应使用ngram标记器而不是ngram过滤器突出显示

  • 问题内容: 如何获得Elastic Search仅突出显示导致文档退回的单词? 我有以下索引 假设我已建立索引: 核能是利用核反应释放核能[5]来产生热量,然后最频繁地将其用于汽轮机中以在核电站中发电。该术语包括核裂变,核衰变和核聚变。目前,周期表the系元素的元素的核裂变在人类直接服务中产生了绝大多数核能,其核衰变过程主要以地热能和放射性同位素热电发生器的形式出现在利基用途中。弥补其余的。 并搜

  • 问题内容: 我正在使用此代码突出显示搜索关键字: 但是,这仅突出显示一个关键字。如果用户输入多个关键字,则会缩小搜索范围,但不会突出显示任何单词。如何突出显示多个单词? 问题答案: 正则表达式是必经之路! 要以不区分大小写的方式进行匹配,请在正则表达式中添加“ i” 注意:对于像“ä”这样的非英语字母,结果可能会因地区而异。

  • 我正在构建一个swing应用程序,它将在左边有一个项目列表,在右边有一个表。右侧显示的表数取决于左侧选择的项。我希望能够“突出显示”(setBackground)显示所有表中相同的所有行。 我读过关于重写prepareRenderer或GetTableCellRendererComponent的文章。然后,条件呈现逻辑位于重写的方法中。 DefaultTableCellRenderer GetTa

  • 问题内容: 我必须强调一个单词中所有出现的单词JEditorPane。为此,我使用以下代码: 但是,如何给出单词索引的位置呢? 我正在从文件中读取内容,但是它也在读取HTML标签,并且正在干扰单词索引。 问题答案: 基本上,您应该能够遍历文档以寻找所需的匹配项 … 这将遍历整个文档并突出显示所有匹配项。这也是区分大小写的匹配;)