tenlee2012 / elasticsearch-analysis-hao

一个非常hao用的elasticsearch(es)中文分词器插件
Apache License 2.0
231 stars 28 forks source link

Array类型在某些情况下启用fvh,会导致高亮片段错位的问题 #51

Closed luchihao closed 2 years ago

luchihao commented 2 years ago

大佬好,发现一个fvh导致高亮错位的问题。


插件版本: 8.3.1


索引配置:

{
    "mappings": {
        "dynamic": false,
        "properties": {
            "data": {
                "type": "text",
                "analyzer": "hao_index_mode",
                "search_analyzer": "hao_search_mode",
                "term_vector": "with_positions_offsets"
            }
        }
    }
}

插入文档

{
    "data": [
        "测试文本1",
        "......",
        "测试文本2"
    ]
}

搜索关键字测试

GET /_search

{
    "query": {
        "match": {"data": "测试"}
    },
    "highlight": {
        "fields": {"data": {}}
    }
}

返回结果如下:

{
    "_source": {
        "data": [
            "测试文本1",
            "......",
            "测试文本2"
        ]
    },
    "highlight": {
        "data": [
            "<em>测试</em>文本1",
            ".<em>..</em>..."
        ]
    }
}

可以看到第二个测试的高亮片段有误。

把中间的......去掉,则没有这个问题。

POST /_doc

{
    "data": [
        "测试文本1",
        "测试文本2"
    ]
}

GET /_search

{
    "query": {
        "match": {"data": "测试"}
    },
    "highlight": {
        "fields": {"data": {}}
    }
}

RETURN
{
    "_source": {
        "data": [
            "测试文本1",
            "测试文本2"
        ]
    },
    "highlight": {
        "data": [
            "<em>测试</em>文本1",
            "<em>测试</em>文本2"
        ]
    }
}
tenlee2012 commented 2 years ago

感谢反馈,已修复,可下载最新release包体验。