Elasticsearch突出显示:Java没有突出显示该字段

时间:2015-09-21 13:56:16

标签: elasticsearch highlighting

我是弹性搜索的新手。

我已经了解了突出显示的映射和设置。 从文档中,我在该领域使用了属性" store:yes"在原始领域。但我不知道我是否在正确的地方给予。

我的映射:

"mappingtype":
{
    "_timestamp": 
    {
        "enabled": true         
    },
    "properties":
    {
        "products":
        {
            "type":"nested",
            "include_in_parent": true,
            "properties":
            {
                "productTitle":
                {                   
                    "type" : "string",
                    "fields" : 
                    {
                        "my_ngram_title" : 
                        {
                            "type":"string",
                            "index_analyzer": "my_ngram_analyzer", 
                            "search_analyzer": "default" 
                        },
                        "snowball_title" : 
                        {
                            "type":"string",
                            "index_analyzer": "snowball_analyzer", 
                            "search_analyzer": "snowball_analyzer" 
                        },
                        "raw" : 
                        {
                            "type" : "string",  
                            "store": "yes",                         
                            "index" : "not_analyzed"
                        },
                        "lowercase_title" : 
                        {
                            "type":"string",
                            "index_analyzer": "lowercase_analyzer"
                        }
                    }
                }
            }
        }   
    }   
}

然后在Java中,在查询形成时我使用了以下字段。

   .setHighlighterPostTags("</span>")
   .setHighlighterPreTags("<span class='highlight'>")
   .addHighlightedField("products.productTitle.raw")

它被完美地编入索引并且在搜索时我完美地获得了搜索结果。

但在搜索结果中,results.getHighlightFields()始终为null。

另外,我需要一个以下场景的例子。

索引记录列表:[&#39; apple&#39;,&#39; orange&#39;,&#39; green apple&#39;&#39;菠萝&#39;]

搜索关键字:&#34; app&#34;

突出显示应该是:

<span class='highlight'>app</span>le
green <span class='highlight'>app</span>le
pine<span class='highlight'>app</span>le

无论如何使用elasticsearch突出显示上述内容?

0 个答案:

没有答案