elasticsearch - 在 Elasticsearch 中突出显示

标签 elasticsearch highlight

这是我的 Elasticsearch 查询:

GET indexname/_search
{
  
    "fields": ["_id", "url","T"],
    "query" : {
     "bool": {"should": [
       {"simple_query_string": {
         "query": "white",
         "fields": ["T", "content"]
       }}
     ]}
    },
    "highlight" : {
      "pre_tags": ["<b>"], 
      "post_tags": ["</b>"], 
        "fields" : {
            "content" : {"fragment_size" : 150, "number_of_fragments" : 1}
        
        }
    }
}  

我的 elasticsearch 查询在字段“T”和“content”中搜索白色,我突出显示字段“content”并插入前后标记 b(粗体)。 这是我查询的结果

"hits": {
    "total": 922,
    "max_score": 2.369757,
    "hits": [
      {
        "_index": "indexname",
        "_type": "Searchtype",
        "_id": "http://www.example.com/de/unternehmenssuche-white-paper",
        "_score": 2.369757,
        "fields": {
          "T": [
            "White Paper Unternehmenssuche"
          ],
          "url": [
            "http://www.example.com/de/unternehmenssuche-white-paper"
          ]
        },
        "highlight": {
          "content": [
            "/Anwendungsbeispiele Ressourcen Blog <b>White</b> Papers in Deutsche Downloads Wiki Unternehmen Vorstellung der Search Executive"
          ]
        }
      }
....
...

我希望我的突出显示结果看起来像这样

"highlight": {
          "content": [
            "<b>...</b> /Anwendungsbeispiele Ressourcen Blog <b>White</b> Papers in Deutsche Downloads Wiki Unternehmen Vorstellung der Search Executive <b>...</b>"
          ]
        }

我要添加 <b>...</b>突出显示内容之前和之后。我应该在我的 elasticsearch 查询中添加什么以使结果看起来像这样?

最佳答案

正如我在评论中所述,我不认为这可以在 Elasticsearch 中完成。荧光笔只会突出显示它匹配的术语,不会进行进一步的后处理(而且我在 docs for Elasticsearch 2.3 中没有发现任何证据表明您可以让它这样做)。

无论如何,我的逻辑方法是添加 <b>...</b>呈现 HTML 代码时标记。

{{ foreach hit in hits }}
<b>...</b> hit[content] <b>...</b>
{{ endfor }}

像这样,只需修改它以适合您的模板。

关于elasticsearch - 在 Elasticsearch 中突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39150946/

相关文章:

c++ - MFC ComboBox下拉列表未突出显示所选项目

elasticsearch - Elasticsearch术语聚合和查询

javascript - ElasticSearch 删除批量项目

php - 如何使用 PHP 中的访问 key 连接到 AWS Elasticsearch 服务?

Javascript:如何检测单词是否突出显示

diff - 如何在 sphinx 中的重组文本中突出显示差异输出文本?

android - 如何突出显示搜索词

java - 未找到 JNA。 native 方法将被禁用。 java.lang.ClassNotFoundException : com. sun.jna.Native 异常

elasticsearch - 为什么ElasticSearch对于dat_histogram聚合仅返回5个存储桶?

vim - 在 Vim 中突出显示光标下的变量,就像在 NetBeans 中一样