是否有可能以突出它发生在一个短语停止的话,而不是强调其单独出现停止的话吗?
例如,我想强调的“指环王”,“环”,或“主”。但我不想Elasticsearch突出“的”或“”如果它们出现孤独。
我使用的索引设置english_stop分析。该分析仪删除所有停用词,因此它不会突出显示搜索结果中的任何停止词。但是,如果我删除english_stop分析仪,那么它处处彰显停止词,如“中”,“中”,甚至当他们单独出现。我不能添加使用英语仪另一场,因为我有很多的文件,并重新索引的成本太高。
有没有一种方法仅强调在一个短语匹配停止的话,而不必改变索引架构?
我的指数模板:
"template": "index_name",
"settings": {
"index": {
"analysis": {
"analyzer": {
"english": {
"tokenizer": "tokenizer_name",
"filter": [
"standard",
"lowercase",
"english_stop",
"kstem"
]
},
这是搜索查询高亮结果的“指环王”
在指环王是由英国作家J·R·R·托尔金写的史诗大幻想小说。故事开始为续集托尔金的1937年奇幻小说霍比特人,但最终发展成为一个更大的工作。写在1937年和1949年之间的阶段,指环王是最畅销的小说之一
如果您使用的查询字符串,然后使用phrase_slop财产在那里将只强调环和主。我们有同样的问题,这解决了这个问题,但是这也有一个限制,其中ES将不能够“人在月球”和“月球上的人”的区分。它会突出人和月亮出现因为“”和“”都是停用词。
https://www.elastic.co/guide/en/elasticsearch/guide/master/stopwords-phrases.html#_stopwords