正排索引 和 倒排索引
正排索引:通过id ,查询content
倒排索引:通过content,查询到符合的 ids
eg:
通过《静夜思》,找到整片文章。
通过"明月",找到《静夜思》 《望月怀古》《关山月》等
get 查询
索引的基本信息:
GET your_index/_mapping //跟看mysql表字段差不多
GET your_index/_alias //查看索引的别名
GET /_cat/health?v //查看集群状态
GET _cat/indices // 查看所有index
GET _cat/shards/your_index //查看指定索引的分片数,每个分片有主(p)副(r)分片
查询索引内容:
match_all:
GET /you_index/_search
{
"query":{
"match_all": {}
}
bool
:
bool查询是一个非常强大且常用的复合查询,它允许你组合多个查询条件。bool
查询的核心概念包括以下四种子句:
- must : 子句必须匹配文档。类似于 SQL 中的 AND 操作符。
- filter : 子句必须匹配文档,但不影响评分。也就是说,它只过滤文档,但不参与评分计算。
- should : 子句可以匹配文档。如果在一个
bool
查询中包含了多个should
子句,则至少一个should
子句必须匹配文档。类似于 SQL 中的 OR 操作符。 - must_not: 子句不能匹配文档。类似于 SQL 中的 NOT 操作符。
eg:
GET you_index/_search
{
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"term": {
"name": {
"value": "林俊凯",
"boost": 1
}
}
},
{
"term": {
"zh_name": {
"value": "林俊凯",
"boost": 1
}
}
}
]
}
},
{
"bool": {
"should": [
{
"range": {
"fans_num": {
"gte": "800"
}
}
},
{
"terms": {
"tag": [
1010,
1013
]
}
}
]
}
}
]
}
},
"sort": {
"_score": {
"order": "desc"
},
"score": {
"order": "desc"
}
}
}
range
"range": {
"fans_num": {
"gte": 800,
"lte":126334
}
}
term
terms
prefix
multi_match
multi_phrase
analyzer
mla
standard
keyword
slop
3<80%