elasticsearch 使用
https://www.jianshu.com/p/7247ac3663f7
查询方法
- term 不分词,精确查找
- match 会分词,模糊匹配,需要指定字段名,比如"hello world"会进行拆分为hello和world
- match_phase 会分词,但是需要结果中也包含所有的分词,而且顺序要求一样
- query_string 会分词,在所有字段中搜索
- multi_match 不分词,它只会匹配他的相似度,根据提供的fields,逐个进行匹配
条件控制
https://blog.csdn.net/SongYuxinIT/article/details/120678401
- must 与
- should 或
标准分析器
https://www.elastic.co/guide/en/elasticsearch/guide/2.x/most-fields.html
标明col.std
还应该额外写上字段
{
"query":
{
"bool":
{
"should": [
{
"multi_match":
{
"query": "Wooden Stool",
"fields": ["name^1", "name.std"],
"type": "most_fields",
"tie_breaker": 0.3
}
}]
}
}
}
大小写问题
https://www.jianshu.com/p/f48ea2b7827c
https://blog.csdn.net/qq_34412985/article/details/105131567
英文索引可能是小写,查询时候也要小写
term和terms
- term匹配一个
- terms只要文档中在多个词中匹配一个就会返回
match_phrase
text和keyword
text类型:会分词,先把对象进行分词处理,然后再再存入到es中。
keyword:不分词,没有把es中的对象进行分词处理,而是存入了整个对象!
数组字段
数组定义和单个字段没有不同,推数组上去就会被识别为数组
最后更新于 2022-06-09 11:52:47 并被添加「」标签,已有 818 位童鞋阅读过。
此处评论已关闭