使用止回滤波器调整单词位置



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