ძირითადი საძიებო მოთხოვნები Elasticsearch: ყოვლისმომცველი გზამკვლევი

საკვანძო სიტყვებზე დაფუძნებული შეკითხვა(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 შეგიძლიათ დააკავშიროთ ეს მოთხოვნები მონაცემების მოქნილად და ეფექტურად მოსაძებნად.