Elasticsearch kibanaクエリー
4691 ワード
一、
簡単なCRUD操作
1、追加
2、照会
3、修正
4、削除
二、検索
検索は6つのクラスに分けることができます
1、query string search 2、query DSL 3、query filter 4、full-text search 5、phrase search 6、highlight search
1)query string search
すべて検索:GET supplier/user/search
took:数ミリ秒かかりました
timed_out:タイムアウトするかどうか、ここにはありません
_shards:データは5つのスライスに分割されているので、検索要求に対してすべてのprimary shard(またはそのreplica shard)に打たれます.
hits.total:クエリー結果の数、3つのdocument
hits.max_score:scoreの意味は、documentが1つのsearchの相関度に対する整合点数であり、相関すればするほど整合し、点数も高いことである.
hits.hits:検索に一致するdocumentの詳細データが含まれています
2、query DSL
すべてのクエリー
クエリーをすべてソート
ページングクエリ
クエリー表示するfieldを指定
3、query filter
検索nameがlisiでpriceが1500より大きい
4、full-text search(全文検索)
addressというフィールドは、先に分解され、逆インデックスが作成されます
5、phrase search(フレーズ検索)
全文検索に対応して、逆に全文検索は入力した検索列を分解して、インデックスの中に並べ替えて一つ一つマッチングして、上のいずれかの分解後の単語にマッチングできれば、結果としてphrase searchを返すことができて、入力した検索列を要求して、指定したフィールドのテキストの中で、完全にそっくりを含んでこそ、マッチングを計算することができます.結果として返される
6、highlight search(ハイライト検索結果)
簡単なCRUD操作
1、追加
PUT /index/type/id
{
"json "
}
2、照会
GET /index/type/id
3、修正
POST /index/type/id/_update
{
"doc": {
"FIELD": " "
}
}
4、削除
DELETE /index/type/id
二、検索
検索は6つのクラスに分けることができます
1、query string search 2、query DSL 3、query filter 4、full-text search 5、phrase search 6、highlight search
1)query string search
すべて検索:GET supplier/user/search
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 3,
"max_score": 1,
"hits": [
{
"_index": "supplier",
"_type": "user",
"_id": "2",
"_score": 1,
"_source": {
"name": "lisi",
"age": 26,
"address": "bei jing tong zhou",
"price": 10000,
"dept": [
"kaifabu"
]
}
},
{
"_index": "supplier",
"_type": "user",
"_id": "1",
"_score": 1,
"_source": {
"name": "zhangsan",
"age": 30,
"address": "bei jing chang chun jie",
"price": 15000,
"dept": [
"kaifabu",
"yanfabu"
]
}
},
{
"_index": "supplier",
"_type": "user",
"_id": "3",
"_score": 1,
"_source": {
"name": "wangwu",
"age": 26,
"address": "bei jing tong zhou yun he ming zhu",
"price": 13000,
"dept": [
"kaifabu"
]
}
}
]
}
}
took:数ミリ秒かかりました
timed_out:タイムアウトするかどうか、ここにはありません
_shards:データは5つのスライスに分割されているので、検索要求に対してすべてのprimary shard(またはそのreplica shard)に打たれます.
hits.total:クエリー結果の数、3つのdocument
hits.max_score:scoreの意味は、documentが1つのsearchの相関度に対する整合点数であり、相関すればするほど整合し、点数も高いことである.
hits.hits:検索に一致するdocumentの詳細データが含まれています
2、query DSL
すべてのクエリー
GET supplier/user/_search
{
"query": { "match_all": {} }
}
クエリーをすべてソート
GET suppluer/user/_search
{
"query": {
"match_all": {}
}
, "sort": [
{
"price": {
"order": "desc"
}
}
]
}
ページングクエリ
GET supplier/user/_search
{
"query": { "match_all": {} },
"from": 1,
"size": 1
}
クエリー表示するfieldを指定
GET supplier/user/_search
{
"query": { "match_all": {} },
"_source": ["name", "price"]
}
3、query filter
検索nameがlisiでpriceが1500より大きい
GET supplier/user/_search
{
"query" : {
"bool" : {
"must" : {
"match" : {
"name" : "lisi"
}
},
"filter" : {
"range" : {
"price" : { "gt" : 1500}
}
}
}
}
}
4、full-text search(全文検索)
addressというフィールドは、先に分解され、逆インデックスが作成されます
GET /ecommerce/product/_search
{
"query" : {
"match" : {
"address" : "bei jing"
}
}
}
5、phrase search(フレーズ検索)
全文検索に対応して、逆に全文検索は入力した検索列を分解して、インデックスの中に並べ替えて一つ一つマッチングして、上のいずれかの分解後の単語にマッチングできれば、結果としてphrase searchを返すことができて、入力した検索列を要求して、指定したフィールドのテキストの中で、完全にそっくりを含んでこそ、マッチングを計算することができます.結果として返される
GET /ecommerce/product/_search
{
"query" : {
"match_phrase" : {
"address" : "bei jing"
}
}
}
6、highlight search(ハイライト検索結果)
GET /ecommerce/product/_search
{
"query" : {
"match" : {
"address" : "bei jing"
}
},
"highlight": {
"fields" : {
"address" : {}
}
}
}