linux行位换行符,换行符或标点符号作为elasticsearch中的位置间隔

我最终想出了一个解决方案,使用char_filter在换行符和标点符号上引入额外的标记:

PUT /index

{

"settings": {

"analysis": {

"char_filter": {

"my_mapping": {

"type": "mapping",

"mappings": [ ".=>\\n_PERIOD_\\n", "\\n=>\\n_NEWLINE_\\n" ]

}

},

"analyzer": {

"my_analyzer": {

"tokenizer": "standard",

"char_filter": ["my_mapping"],

"filter": ["lowercase"]

}

}

}

}

}

使用示例字符串进行测试

POST /index/_analyze?analyzer=my_analyzer&pretty

The quick brown fox runs after the rabbit.

Then comes the jumpy frog.

结果如下:

{

"tokens" : [ {

"token" : "the",

"start_offset" : 0,

"end_offset" : 3,

"type" : "",

"position" : 1

}, {

... snip ...

"token" : "rabbit",

"start_offset" : 35,

"end_offset" : 41,

"type" : "",

"position" : 8

}, {

"token" : "_period_",

"start_offset" : 41,

"end_offset" : 41,

"type" : "",

"position" : 9

}, {

"token" : "_newline_",

"start_offset" : 42,

"end_offset" : 42,

"type" : "",

"position" : 10

}, {

"token" : "then",

"start_offset" : 43,

"end_offset" : 47,

"type" : "",

"position" : 11

... snip ...

} ]

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值