Elasticsearch בחר שדות ספציפיים

Elasticsearch Bhr Sdwt Spzypyym



Elasticsearch יחזיר כברירת מחדל את כל השדות במסמך בעת ביצוע שאילתת חיפוש. זה מוגדר על ידי הפרמטר _source, המכיל את כל הנתונים המאוחסנים ברשומה במהלך האינדקס.

curl -XGET 'http://localhost:9200/netflix/_doc/HXYz_IIBLbuC0z3qKeN2?pretty' -H 'kbn-xsrf: דיווח'

תְפוּקָה:







עם זאת, ייתכן שלא תרצה לאחזר את כל השדות ממסמך נתון. במדריך זה, תלמד כיצד לבחור שדות ספציפיים ממסמך.



אפשרות Elasticsearch שדות

הפרמטר fields מאפשר לנו לאחזר שדות ספציפיים בבקשת חיפוש. בנוסף, פרמטר השדה יאפשר לנו להביא שדות בודדים או מרובים. ניתן גם לעצב תאריכים וסוגי נתונים מרחביים באמצעות פרמטר fields.



לדוגמה, נניח שברצוננו לאחזר את האינדקס, המזהה, הכותרת, release_year, המפורטים בשדות, משך ודירוג מאינדקס Netflix, נוכל להריץ שאילתה כפי שמוצג להלן:





curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: דיווח' -H 'Content-Type: application/json' -d'
{
'שאילתא': {
'התאמה': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
},
'שדות': [
'אינדקס',
'תְעוּדַת זֶהוּת',
'כותרת',
'שנת_שחרור',
'רשום ב',
'מֶשֶׁך',
'דֵרוּג'
],
'_source': false

}'

בבקשה למעלה, אנו משתמשים בממשק API לחיפוש כדי לחפש במסמך עם המזהה שצוין בפרמטר ההתאמה.

לאחר מכן אנו משתמשים בפרמטר fields כדי להביא את השדות הספציפיים ממסמך היעד.



שימו לב שה- Elasticsearch יכלול כברירת מחדל את הפרמטר _source, המורכב מכל שדות המסמך. כדי להבטיח שנביא רק את השדות שצוינו, אנו מכבים את הפרמטר _source:

הבקשה לעיל אמורה להחזיר תגובה כפי שמוצג:

{
'לקח': 1,
'פסק זמן': false,
'_שברים': {
'סה'כ': 1,
'מוצלח': 1,
'דילג': 0,
'נכשל': 0
},
'hits': {
'סך הכל': {
'ערך': 1,
'relation': 'eq'
},
'max_score': 1,
'להיטים': [
{
'_index': 'נטפליקס',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'שדות': {
'רשום ב': [
'תיעודיים'
],
'משך': [
'90 דקות'
],
'שנת_שחרור': [
2020
],
'דירוג': [
'PG-13'
],
'כותרת': [
'דיק ג'ונסון מת'
]
}
}
]
}
}

אתה יכול גם להשתמש בפרמטר _source כדי להגדיר אילו שדות להחזיר משאילתת חיפוש. דוגמה מוצגת להלן:

curl -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: reporting' -H 'Content-Type: application/json' -d'
{
'_source': ['title', 'release_year', 'rating', 'duration'],
'שאילתא': {
'טווח': {
'_id': {
'value': 'HXYz_IIBLbuC0z3qKeN2'
}
}
}

}'

במקרה זה, אנו מציינים את השדות שברצוננו לאחזר כמערך בפרמטר המקור. הבקשה למעלה צריכה להחזיר את התגובה כפי שמוצג:

{
'לקח': 0,
'פסק זמן': false,
'_שברים': {
'סה'כ': 1,
'מוצלח': 1,
'דילג': 0,
'נכשל': 0
},
'hits': {
'סך הכל': {
'ערך': 1,
'relation': 'eq'
},
'max_score': 1,
'להיטים': [
{
'_index': 'נטפליקס',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'_source': {
'duration': '90 דקות',
'שנת_release': 2020,
'rating': 'PG-13',
'title': 'דיק ג'ונסון מת'
}
}
]
}

}

סיכום

במאמר זה למדת כיצד להביא שדות ספציפיים מבקשת חיפוש באמצעות הפרמטרים שדות ו_source.

למידע נוסף על Elasticsearch והיכולות שלה, עיין במדריכי הלימוד שלנו בנושא. מובטח לך שתמצא משהו שימושי.

תודה שקראת ותתפוס אותך בפרק הבא!!