是否可以突出显示短语中出现的停用词,而不能突出显示单独出现的停用词?
例如,我要突出显示“指环王”,“指环”或“领主”。但是我不希望Elasticsearch突出显示“ of”或“ the”(如果它们单独出现)。
我在索引设置中使用english_stop分析器。该分析器会删除所有停用词,因此不会在搜索结果中突出显示任何停用词。但是,如果我删除english_stop分析器,那么即使它们单独出现,它也总是突出显示“ of”,“ the”之类的停用词。我无法使用英语分析器添加其他字段,因为我有很多文档,而重新索引成本太高。
是否有一种方法可以仅在词组匹配中突出显示停用词,而无需更改索引架构?
我的索引模板:
"template": "index_name",
"settings": {
"index": {
"analysis": {
"analyzer": {
"english": {
"tokenizer": "tokenizer_name",
"filter": [
"standard",
"lowercase",
"english_stop",
"kstem"
]
},
这是搜索查询“指环王”中突出显示的结果
指环的领主是由英国作家J. R. R. Tolkien撰写的史诗般的高幻想小说。故事的开始是托尔金1937年的奇幻小说《霍比特人》的续集,但最终发展成更大的作品。 《指环王》的领主写于1937年至1949年之间,是最畅销的小说之一
答案 0 :(得分:0)
如果使用的是查询字符串,则使用statement_slop属性,该属性将仅突出显示铃声和领主。我们遇到了同样的问题,并且解决了该问题,但是这也存在局限性,ES不能区分“月球上的人”和“月球上的人”。它将突出显示人和月亮的出现,因为“ in”和“ on”都是停用词。
https://www.elastic.co/guide/en/elasticsearch/guide/master/stopwords-phrases.html#_stopwords