我使用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>
分析仪和亮点过程之间的关系是什么?我的配置有什么问题?
答案 0 :(得分:0)
请注意,您可以调整突出显示参数,请查看上面的配置:
"highlight": {
"number_of_fragments": 5,
"type": "plain",
"fields": {
"*": {
"fragment_size": 100
}
}
}
这里有另一个链接可以帮助您解决奇怪的结果:Curious behaviour of fragment_size in elasticsearch highlighting