我们进行检索时,通常需要既支持模糊搜索也支持精确搜索,下面是elasticsearch的实现方式
情况1: 空索引
这种情况,非常的简单,只要给予一个字段两种解析方式即可
“properties”: {
“name”: {
“analyzer”:”ik_smart”,
“type”:”text”,
“fields”: {
“keyword”: {
“type”:”keyword”,
“ignore_above”:256
}
}
}
}
情况2: 非空索引
1. 此时,首先修改mapping的配置
curl -H “Content-Type:application/json” -X PUT http://127.0.0.1:9220/my_index/_doc/_mapping -d ‘{
“properties”:{
“name”:{
“analyzer”:”ik_smart”,
“type”:”text”,
“fields”:{
“keyword”:{
“type”:”keyword”,
“ignore_above”:256
}
}
}
}
}’
2. 更新历史数据 因为此时索引中已有数据,修改mapping后仅只对之后的数据生效,对于历史数据是不会生效的,所以需要我们对历史数据进行更新,因为我们并不改变历史数据的source,所以可通过_update_by_query实现
创建任务:
curl -H “Content-Type:application/json” -X POST -d ‘{
“query”: {
“bool”: {
“must_not”: {
“exists”: {
“field”: “name.keyword”
}
}
}
}
} ‘http://127.0.0.1:9220/my_index/_update_by_query?conflicts=proceed&scroll_size=5000&wait_for_completion=false
查看任务完成状态:
curl -X GET http://127.0.0.1:9220/_tasks/6xUTqL-pRqmqo_Qxw5PfEQ:830225002
⬡ 规则怪谈生成器
欢迎使用 规则怪谈生成器 (GuiZeGT) —— 专为恐怖创作者、跑团主持人和怪谈爱好者设计的在线工具。 零AI成本 · 纯模板拼接 · 无限制生成 · 免费使用
-
🏚️ 12个经典场景
核心
从废弃医院到深海孤岛,丰富模板即选即用 -
👻 8种恐怖风格
氛围
心理恐怖、克苏鲁、都市传说……塑造独特惊悚感 -
📜 3档规则数量
难度
从简洁到复杂,控制怪谈的细节密度与挑战性 -
⚡ 逐条浮现生成
体验
规则逐条动态呈现,营造紧张有序的阅读节奏