eLasticsearch的停止滤波器维护单词:https://www.elastic.co/guide/en/elasticsearch/guide/guide/guide/guide/current/using-stopwords.html#maintaining-positions
例如,这是我的分析仪:
"myAnalyzer": {
"tokenizer": "standard",
"filter": ["asciifolding", "french_elision", "lowercase", "french_stop", "french_stemmer"]
}
以及我的字符串分析:
curl -XGET 'localhost:9200/_analyze?pretty=true' -d '{"analyzer": "myAnalyzer", "text": "instruments de musique"}'
Index 339 documents...
{
"tokens" : [ {
"token" : "instrument",
"start_offset" : 0,
"end_offset" : 11,
"type" : "<ALPHANUM>",
"position" : 0
}, {
"token" : "musiqu",
"start_offset" : 15,
"end_offset" : 22,
"type" : "<ALPHANUM>",
"position" : 2
} ]
}
是否有一种调整位置的方法,因此" Musique"一词将位于位置1,而不是2?
我的问题来自阶段查询。
您可以尝试使用 enable_position_increments:false
使用query_string像
{ "query_string":{
"default_field":"text",
"query":""instruments de musique"",
"enable_position_increments":false
}
}