Elasticsearch 分析器删除引用的句子
Elasticsearch analyzer to remove quoted sentences
我正在尝试创建一个分析器来删除(或替换为 white/empty space)文档中的引用句子。
如:this is my \"test document\"
例如,我希望术语向量为:[this, is, my]
您可以使用 Pattern Replace Character Filter 为该字段配置您自己的分析器,将转义双引号之间的所有内容替换为空。
Daniel 答案正确,但由于缺少相应的正则表达式和替换,我提供它,其中包括对您的文本的测试。
索引设置如下,使用模式替换字符。
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"char_filter": [
"my_char_filter"
],
"filter": [
"lowercase"
]
}
},
"char_filter": {
"my_char_filter": {
"type": "pattern_replace",
"pattern": "\"(.*?)\"",
"replacement": ""
}
}
}
}
}
之后使用 analyze API 它生成以下标记:
POST_分析
{
"text": "this is my \"test document\"",
"analyzer" : "my_analyzer"
}
以上API的输出:
{
"tokens": [
{
"token": "this",
"start_offset": 0,
"end_offset": 4,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "is",
"start_offset": 5,
"end_offset": 7,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "my",
"start_offset": 8,
"end_offset": 10,
"type": "<ALPHANUM>",
"position": 2
}
]
}
我正在尝试创建一个分析器来删除(或替换为 white/empty space)文档中的引用句子。
如:this is my \"test document\"
例如,我希望术语向量为:[this, is, my]
您可以使用 Pattern Replace Character Filter 为该字段配置您自己的分析器,将转义双引号之间的所有内容替换为空。
Daniel 答案正确,但由于缺少相应的正则表达式和替换,我提供它,其中包括对您的文本的测试。
索引设置如下,使用模式替换字符。
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"char_filter": [
"my_char_filter"
],
"filter": [
"lowercase"
]
}
},
"char_filter": {
"my_char_filter": {
"type": "pattern_replace",
"pattern": "\"(.*?)\"",
"replacement": ""
}
}
}
}
}
之后使用 analyze API 它生成以下标记:
POST_分析
{
"text": "this is my \"test document\"",
"analyzer" : "my_analyzer"
}
以上API的输出:
{
"tokens": [
{
"token": "this",
"start_offset": 0,
"end_offset": 4,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "is",
"start_offset": 5,
"end_offset": 7,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "my",
"start_offset": 8,
"end_offset": 10,
"type": "<ALPHANUM>",
"position": 2
}
]
}