1

我有以下问题:

我正在用刻面做一些测试

我的脚本如下:

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
            }
        ]
    }
}

………………………………

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

非常感谢您的关注

4

2 回答 2

8

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

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

也就是说,从不突出显示与构面一起返回的术语。

如果您使用突出显示,您应该在您的回复中看到,如参考中所述,一个新部分包含每个搜索结果的突出显示片段。您看不到它的原因是您正在查询该字段,但是您在启用的字段上title.autocomplete突出显示。您必须设置为 true 或突出显示您正在查询的同一字段。但这又与刻面无关。titlerequire_field_matchrequire_field_match

于 2013-09-18T16:07:03.333 回答
7

注意使用*代替_all。这在所有级别的嵌套中都像一个魅力:

POST 123821/Encounters/_search 
{ 
  "query": { 
    "query_string": { 
      "query": "Aller*" 
    } 
  }, 
  "highlight": { 
    "fields": { 
      "*": {} 
    } 
  } 
}
于 2015-01-30T09:09:35.163 回答