საკვანძო სიტყვებზე დაფუძნებული შეკითხვა(Match Query)
Match მოთხოვნა გამოიყენება კონკრეტული საკვანძო სიტყვების შემცველი დოკუმენტების მოსაძებნად. ის დააბრუნებს დოკუმენტებს, რომლებსაც აქვთ მინიმუმ ერთი შესაბამისი საკვანძო სიტყვა.
მაგალითი: იპოვეთ პროდუქტები საკვანძო სიტყვის შემცველი laptop
სახელით products Index
.
GET /products/_search
{
"query": {
"match": {
"name": "laptop"
}
}
}
უნდა შეიცავდეს ყველა საკვანძო სიტყვას(Match Phrase Query)
შესატყვისი ფრაზების მოთხოვნა მოითხოვს, რომ მოთხოვნის ყველა საკვანძო სიტყვა გამოჩნდეს თანმიმდევრულად და სწორი თანმიმდევრობით დოკუმენტის ტექსტში.
მაგალითი: იპოვეთ პროდუქტები, რომელშიც აღწერილია ფრაზა HP laptop
.
GET /products/_search
{
"query": {
"match_phrase": {
"description": "HP laptop"
}
}
}
უნდა შეიცავდეს ფრაზების მთლიან პრეფიქსს(Match Phrase Prefix Query)
Match Phrase Prefix-ის მოთხოვნა Match Phrase-ის მსგავსია, მაგრამ ის იძლევა ბოლო საკვანძო სიტყვის ნაწილობრივი შესატყვისის საშუალებას.
მაგალითი: იპოვეთ პროდუქტები აღწერით დაწყებული laptop
.
GET /products/_search
{
"query": {
"match_phrase_prefix": {
"description": "laptop"
}
}
}
ტერმინებზე დაფუძნებული შეკითხვა(ტერმინის მოთხოვნა)
ტერმინის მოთხოვნა გამოიყენება დოკუმენტების მოსაძებნად, სადაც მითითებულია ზუსტი მნიშვნელობის მქონე ველი.
მაგალითი: იპოვეთ პროდუქტები ველით, category
რომელსაც აქვს მნიშვნელობა laptop
.
GET /products/_search
{
"query": {
"term": {
"category": "laptop"
}
}
}
დიაპაზონზე დაფუძნებული შეკითხვა(Range Query)
დიაპაზონის მოთხოვნა დაგეხმარებათ მოძებნოთ დოკუმენტები ველის მნიშვნელობით მითითებულ დიაპაზონში.
მაგალითი: იპოვეთ პროდუქტები 500-დან 1000-მდე ფასებით.
GET /products/_search
{
"query": {
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
}
ვადის დონის მოთხოვნა
ვადის დონის მოთხოვნები საშუალებას გაძლევთ მოძებნოთ დოკუმენტები კონკრეტული პირობების საფუძველზე, როგორიცაა ზუსტი, პრეფიქსი, დიაპაზონი, Wildcard და Fuzzy მოთხოვნები.
მაგალითი: იპოვეთ პროდუქტები, რომელთა სახელები იწყება laptop
და ფასები 500-დან 1000-მდეა.
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"prefix": {
"name": "laptop"
}
},
{
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
]
}
}
}
Full-Text შეკითხვა
Full-Text queries საშუალებას იძლევა მოძებნოთ ტექსტის ველები ტექსტის ანალიზის ალგორითმების გამოყენებით მსგავსი სიტყვების ან სინონიმების საპოვნელად.
მაგალითი: იპოვეთ პროდუქტები აღწერილობებით, რომლებიც შეიცავს ან computer
ან laptop
.
GET /products/_search
{
"query": {
"match": {
"description": "computer laptop"
}
}
}
ლოგიკური შეკითხვა
Boolean
მოთხოვნები საშუალებას გაძლევთ დააკავშიროთ მრავალი ქვემოთხოვნა სხვადასხვა საძიებო პირობებთან, როგორიცაა უნდა შეიცავდეს ყველა, უნდა შეიცავდეს მინიმუმ ერთს ან არ უნდა შეიცავდეს ზუსტი ძიების შედეგების მისაღწევად.
მაგალითი: იპოვეთ პროდუქტები არსებით category
და laptop
ფასებით 500-დან 1000-მდე.
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"category": "laptop"
}
},
{
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
]
}
}
}
ეს არის ძირითადი საძიებო მოთხოვნები ში Elasticsearch, თითოეული შეკითხვის ტიპის ილუსტრირებულ მაგალითებთან ერთად. გამოყენებისას Elasticsearch შეგიძლიათ დააკავშიროთ ეს მოთხოვნები მონაცემების მოქნილად და ეფექტურად მოსაძებნად.