Elasticsearch突出显示 - 无法正常工作

时间:2013-09-18 15:42:07

标签: elasticsearch

我有以下问题:

我正在用facetings进行一些测试

我的脚本如下:

https://gist.github.com/nayelisantacruz/6610862

我得到的结果如下:

{
    "took": 2,
    "timed_out": false,
    "_shards": {
        "total": 5,
        "successful": 5,
        "failed": 0
    },
    "hits": {
        "total": 2,
        "max_score": 1,
        "hits": []
    },
    "facets": {
        "title": {
            "_type": "terms",
            "missing": 0,
            "total": 2,
            "other": 0,
            "terms": [
                {
                    "term": "JavaScript",
                    "count": 1
                },
                {
                    "term": "Java Platform, Standard Edition",
                    "count": 1
                }
            ]
        }
    }
}

这很好,但问题是我无法显示“突出显示”

我期待的结果如下:

.......... .......... ..........

"facets": {
    "title": {
        "_type": "terms",
        "missing": 0,
        "total": 2,
        "other": 0,
        "terms": [
            {
                "term": "<b>Java</b>Script",
                "count": 1
            },
            {
                "term": "<b>Java</b> Platform, Standard Edition",
                "count": 1
            }
        ]
    }
}

.......... .......... ..........

任何人都可以帮助我并告诉我我做错了什么或我错过了什么,请

非常感谢您的关注

2 个答案:

答案 0 :(得分:8)

分面和突出显示是两件完全不同的事情。突出显示与搜索一起使用,以便为每个搜索结果返回突出显示的片段。

Faceting是一个完全不同的故事,因为在与主查询匹配的所有文档中,facet有效地查看已为特定字段编制索引的所有术语。在这方面,查询仅控制将要考虑执行分面的文档。将返回仅返回顶部术语(默认情况下具有更高计数)。这些术语不仅与搜索结果(默认为10)相关,而且与所有与查询匹配的文档相关。

尽管如此,从方面返回的术语从未突出显示。

如果您使用highlighting,则应在回复中看到一个新部分,其中包含每个搜索结果的突出显示的代码段。您没有看到它的原因是您要查询title.autocomplete字段,但是在启用了title的{​​{1}}字段上进行突出显示。您必须将require_field_match设置为true或突出显示您要查询的相同字段。但这再次与分面无关。

答案 1 :(得分:7)

请注意使用*代替_all。这就像在各种嵌套层面上的魅力一样:

POST 123821/Encounters/_search 
{ 
  "query": { 
    "query_string": { 
      "query": "Aller*" 
    } 
  }, 
  "highlight": { 
    "fields": { 
      "*": {} 
    } 
  } 
}
相关问题