ElasticSearch突出显示结果重复片段

时间:2015-02-27 15:15:43

标签: symfony elasticsearch foselasticabundle

我使用FOSElasticaBundle使用此配置索引ES文档:

index:
analysis:
    analyzer:
        custom_analyzer:
            type:           custom
            tokenizer:      nGram
            filter:         [stopwords, asciifolding ,lowercase, snowball, elision, worddelimiter]
        custom_search_analyzer:
            type:           custom
            tokenizer:      standard
            filter:         [stopwords, asciifolding ,lowercase, snowball, elision, worddelimiter]
    tokenizer:
        nGram:
            type:           nGram
            min_gram:       2
            max_gram:       20
    filter:
        snowball:
            type:           snowball
            language:       French
        elision:
            type:           elision
            articles:       [l, m, t, qu, n, s, j, d]
        stopwords:
            type:           stop
            stopwords:      [_french_]
            ignore_case:    true
        worddelimiter:
            type:           word_delimiter
    types:
        document:
            indexable_callback:         'isIndexable'
            mappings:
                title:
                    boost:              3
                    index_analyzer:     custom_analyzer
                    search_analyzer:    custom_search_analyzer
                summary:
                    boost:              2
                    index_analyzer:     custom_analyzer
                    search_analyzer:    custom_search_analyzer
                description:
                    boost:              1
                    index_analyzer:     custom_analyzer
                    search_analyzer:    custom_search_analyzer

我尝试使用ES的高亮功能,这是一个请求示例:

{
  "query":
  {
    "bool":
    {
      "must":
      [
        {
          "query_string": {
            "query": "blonde",
            "default_field": "_all"
          }
        }
      ]
    }
  },
  "highlight": {
    "fields": {
      "*": {  }
    }
  }
}

给出结果:

"highlight": {

    "title": [
        "Une jeune personne b<em>personne blonde se</em><em>ersonne blonde se te</em><em>blonde se tenait e</em>n partie double, elle avait choisi."
    ]

}

原始内容为Une jeune personne blonde se tenait en partie double, elle avait choisi.

我已经使用不同的分析器配置和文档的重新索引完成了一些测试,但我从来没有得到所有片段的亮点:有时,一个突出显示,而不是其他,有时,没有,等等。 / p>

分析仪和亮点过程之间的关系是什么?我的配置有什么问题?

1 个答案:

答案 0 :(得分:0)

请注意,您可以调整突出显示参数,请查看上面的配置:

"highlight": {
        "number_of_fragments": 5,
        "type": "plain",
        "fields": {
            "*": {
                "fragment_size": 100
            }
        }
    }

这里有另一个链接可以帮助您解决奇怪的结果:Curious behaviour of fragment_size in elasticsearch highlighting