https://www.bilibili.com/video/BV1NY411573K/?spm_id_from=333.788
1、优化部署方式
尽可能使用高配置和SSD、独占资源
SSD具有高效的读写数据和稳定性
核心业务集群配置专有主节点:如master节点、写入节点、数据节点、协调节点。
2、最优化容量规划
ES高可用架构部署:读写分离、流量隔离、减少超时
LB -> 协调节点 -> 数据节点 -> 主节点
LB -> Ingest 节点 -> 数据节点 -> 主节点
这里的LB是软负载;例如(Nginx)
硬负载和软负载的概念可以参考:https://blog.csdn.net/swadian2008/article/details/119960016
避免频繁更新
索引拆分
合理分片
合理副本
// TODO
B站视频:https://www.bilibili.com/video/BV1Ji4y127Tg/?spm_id_from=pageDriver
例如:好好学习,天天向上; 类型为 text
倒排索引为:
(term) (construct)
好 -> docId\frequency\position\payload
好
学
习
Payload: 是lucene 提供的一个可以在索引的过程中将关键词权重与文档进行一个关联
Lucene 默认 TFIDF 打分机制
$$
score(q, d)=coord(q, d) * queryNorm(q) * \sum_{t \in d}(tf(t \in d) * idf(t)^2 * boost(t) * norm(t, d))
$$
score(q, d): 总得分
Coord(q, d): 协调因子
queryNorm(q): 查询范数
Tf(t-d): 词频
Idf(t)^2: 逆文档概率
boost(t): 词项权重
norm: 长度范数
Lucene 自定义 Payload 打分机制
$$
score(q, d) = coord(q, d) * queryNorm(q) * \sum_{t \in d} (tf(t \in d) * idf(t)^2 * Payload(t \in d) * boost(t) * norm(t, d)) * boost(q)
$$
$$
score(q, d) = 1 * 1 * \sum_{t \in d} (1 * 1 * Payload(t \in d) * boost(t) * 1 * boost(q)
$$
将其他项设置为1,用我们自定义 Payload 来绝对最终评分
其他同上
Payload(t-d): Payload 得分
boost(q): 查询权重
我们可以通过重写这个公式,打包成插件,安装到我们的 elastic 集群中,实现自定义评分
商城搜索,两个用户分别为男1、女1,搜索关键字 “苹果”,根据数据库中已有的数据可知 男1职业为厨师、女1为IT工作人员。期望不同用户搜索的,最终返回的数据为他们更为关注的。
需求:
让女1搜索的 “苹果” 优先召回苹果手机等相关的
让男1搜索的 “苹果” 优先召回水果苹果等相关的
当 Elasticsearch 自带的分词器无法满足时,可以自定义分词器。通过组合不同的组件实现
在 Tokenizer 对文本进行处理,例如增加删除以及替换字符。可以配置多个 Character Filter 。会影响 Tokenizer 的 position 和 offset 信息。
一些自带的 Character Filter
一个分词器接收一个字符流,并将其拆分单个 token(通常是单个单词),并输出一个 token 流。比如使用whitespace分词器,当遇到空格的时候会将文本拆分成 token。
一个分析器只能有一个分词器
将原始的文本按照一定的规则,切分为词(term or token)
Elasticsearch 内置的 Tokenizers
可以用 Java 开发 插件,实现自己的 Tokenizer
ES内置分词器
token 过滤器接收 token 流,并且可能会添加、删除或更改 tokens。比如一个 lower case token 可以将所有的 token 转成小写。一个分析器可能有 0 个或多个 token 过滤器,它们按顺序应用。
内置分词过滤器:
标准分词过滤器 (standard)
小写分词过滤器 (lowercase)
长度分词过滤器 (length)
长度分词过滤器将长度超过最短和最长限制范围的单词过滤掉
停用词分词过滤器 (stop)
https://wenku.baidu.com/view/582a906b2d3f5727a5e9856a561252d380eb2015.html
https://blog.csdn.net/m0_37661458/article/details/107462575