我使用的弹性与下列设置:
ES = {
"mappings": {
ES_DOC_TYPE: {
"properties": {
"message": {
"type": "string",
"analyzer": "liza_analyzer",
"include_in_all": False
}
}
}
},
"settings": {
"number_of_shards": 4,
"analysis": {
"tokenizer": {
"liza_tokenizer": {
"type": "pattern",
"pattern": r"(\. )|[\s,\[\]\(\)\"\!\'\?\`\*\;\:\/<>«»\#]+",
"flags": "UNICODE_CASE"
}
},
"analyzer": {
"liza_analyzer": {
"type": "custom",
"tokenizer": "liza_tokenizer",
"filter": ["lowercase"]
}
},
}
}
}
当我试着在一句话“hello world”中找到一个单词“hello”时,弹性体就找到了。你知道吗
当我试着在一个句子“你好”中找到一个单词“你好”。“世界”,橡皮筋找到了它。你知道吗
当我试图在一个句子“hello”中找到一个单词“hello”时,弹性体也会找到它。你知道吗
但是当我试着在一个句子“hello”中找到“hello”这个词时(结尾有点),弹性体就找不到了。你知道吗
同时,最后两个句子的标记看起来像
{
"tokens": [{
"token": "hello",
"start_offset": 0,
"end_offset": 5,
"type": "<ALPHANUM>",
"position": 0
}]
}
(完全相同)
问题是:为什么会这样?我该怎么修?你知道吗
你的模式是错误的。应该是:
相关问题 更多 >
编程相关推荐