【发布时间】:2018-02-17 14:22:18
【问题描述】:
Elasticsearch 的停用词过滤器维护单词位置:https://www.elastic.co/guide/en/elasticsearch/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
} ]
}
有没有办法调整位置,让“音乐”这个词出现在位置 1 而不是 2?
我的问题来自阶段查询。
【问题讨论】:
-
如果您将 instrument 设为停用词,是的,但不确定您为什么要这样做?
-
因为在短语查询中我希望能够搜索“instrument de musique”(“de”是停用词)或“instrument musique”,但由于位置原因,它不起作用。如果可能的话,我不想玩短语查询的“slop”参数。
-
你试过删除停用词过滤器吗?
-
还可以查看此内容以更有效地执行此操作elastic.co/guide/en/elasticsearch/guide/current/…
标签: elasticsearch