လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> elast ချွတ်ကြက်ငှက်တုပ်ကွေးစုံစမ်းမှုကိုတည်ဆောက်ပါ

elast ချွတ်ကြက်ငှက်တုပ်ကွေးစုံစမ်းမှုကိုတည်ဆောက်ပါ

M66 2025-05-11

အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် PHP သည် arrays များကိုလုပ်ဆောင်ရန်အဆင်ပြေစေရန်အဆင်ပြေအောင်လုပ်ဆောင်မှုများစွာပေးပြီး array_column function သည်၎င်းတို့ထဲမှတစ်ခုဖြစ်သည်။ array_colnolumn သည် နှစ်ရှုထောင်ခင်းကျင်းသည့်ကော်လံတစ်ခုတွင်ကော်လံတစ်ခုကိုထုတ်ယူနိုင်ပြီးထိုကော်လံ၏တန်ဖိုးများပါ 0 င်သည့်ခင်းကျင်းမှုအသစ်တစ်ခုကိုပြန်ပို့နိုင်သည်။ array_column function သည် elast ခွဲကြက်ရန်စုံစမ်းမှုအကွက်ကိုတည်ဆောက်ရာတွင်အလွန်အသုံးဝင်သည်။

elast ခလုတ်ကိုတည်ဆောက်ရန် array_colum ကို အသုံးပြုနည်း, အထူးသဖြင့် elastinsarchy query မှတိကျသောအကွက်များကို extract လုပ်နည်း။

1 ။ Array_column function ကဘာလဲ။

Array_column သည် PHP တွင် built-in function တစ်ခုဖြစ်ပြီးတစ်ရှုထောင်ခင်းကျင်းမှုတစ်ခုမှသတ်မှတ်ထားသောကော်လံတစ်ခု၏တန်ဖိုးများအားလုံးကိုဖြည်ချပြီးဤတန်ဖိုးများကိုတစ်ရှုထောင်ခင်းကျင်းမှုအသစ်တစ်ခုအဖြစ်ပြန်ပို့သည်။ ဤလုပ်ဆောင်ချက်၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_column(array $array, $column_key, $index_key = null): array
  • $ array : input multi-dimensional array ။

  • $ column_key : ထုတ်ယူခံရဖို့လိုအပ်တဲ့ကော်လံရဲ့သော့ချက်။

  • $ index_key : ရလဒ်ကိုအညွှန်းကိန်းအတွက်အသုံးပြုသောကော်လံကိုသတ်မှတ်သည့်ကော်လံကိုသတ်မှတ်သည့်ရွေးချယ်စရာ parameter သည် (မပေးခဲ့ပါကရလဒ်ခင်းကျင်းသည်ကိန်းဂဏန်းအညွှန်းကိန်းကိုအလိုအလျောက်အသုံးပြုနိုင်လိမ့်မည်) ။

2 ။ ဥပမာ - elastenangearch query field array တည်ဆောက်ခြင်း

စာရွက်စာတမ်းအချက်အလက်များပါ 0 င်သောနှစ်ဖက်မြင်ကွင်းခင်းကျင်းမှုတစ်ခုရှိသည်ဆိုပါစို့။ စာရွက်စာတမ်းတစ်ခုစီတွင် ID , အမည် , အမျိုးအစားများ စသည်တို့ပါ 0 ်သည်။

2.1 ။ ဒေတာကုန်ကြမ်း

မူရင်းဒေတာအောက်ပါအတိုင်းဖြစ်သည်ဟုယူဆပါ -

 $documents = [
    ['id' => 1, 'name' => 'Apple', 'category' => 'Fruit', 'url' => 'http://example.com/apple'],
    ['id' => 2, 'name' => 'Carrot', 'category' => 'Vegetable', 'url' => 'http://example.com/carrot'],
    ['id' => 3, 'name' => 'Banana', 'category' => 'Fruit', 'url' => 'http://example.com/banana'],
    ['id' => 4, 'name' => 'Spinach', 'category' => 'Vegetable', 'url' => 'http://example.com/spinach']
];

2.2 ။ array_column ကိုအသုံးပြုပြီး အမျိုးအစား field ကိုထုတ်ယူပါ

၎င်းမှ ကဏ် fields တစ်ခုလုံးကိုထုတ်ယူရန် array_column function ကို သုံး. elast ချွတ်ကြက်ရှာဖွေရန်လွယ်ကူစွာအသုံးပြုရန်အတွက်ခင်းကျင်းရန်ခင်းကျင်းမှုကိုတည်ဆောက်နိုင်သည်။

 $categories = array_column($documents, 'category');
print_r($categories);

ရလဒ်ရလဒ် -

 Array
(
    [0] => Fruit
    [1] => Vegetable
    [2] => Fruit
    [3] => Vegetable
)

2.3 ။ elast ချွတ်ကြက်ငှက်တုပ်ကွေးစုံစမ်းမှုကိုတည်ဆောက်ပါ

သင် အမျိုးအစား ကွက်ပေါ်တွင် အခြေခံ . elast ခလုတ်ကိုမှတ်တမ်းတင်ရန်သင်လိုအပ်သည်ဆိုပါစို့။ သင်ဤသို့လုပ်နိုင်သည် -

 $searchTerm = 'Fruit';
$query = [
    'query' => [
        'terms' => [
            'category' => array_column(
                array_filter($documents, function($doc) use ($searchTerm) {
                    return $doc['category'] === $searchTerm;
                }),
                'id'
            )
        ]
    ]
];

// RESSEACY REANTS အကြောင်းအရာ
print_r($query);

စာရွက်စာတမ်းကိုကျွန်ုပ်တို့ရှာဖွေလိုပါကဤစာရွက်စာတမ်းကို အမျိုးအစား အသီးများ ဖြင့်ရှာဖွေလိုသည်ဆိုပါစို့။ array_filter သည် ပစ္စည်း အမျိုးအစား နှင့်စာရွက်စာတမ်းများအားလုံးကိုပထမဆုံးအကြိမ်ထုတ်ယူမည်ဖြစ်ပြီး ID နယ်ပယ်မှထုတ်ယူရန် array_colnum ကို သုံးပါ။

output query array သည်ဤပုံစံနှင့်တူသည်။

 Array
(
    [query] => Array
        (
            [terms] => Array
                (
                    [category] => Array
                        (
                            [0] => 1
                            [1] => 3
                        )
                )
        )
)

3 ။ ပြီးပြည့်စုံသောကုဒ်ဥပမာ

 <?php

$documents = [
    ['id' => 1, 'name' => 'Apple', 'category' => 'Fruit', 'url' => 'http://example.com/apple'],
    ['id' => 2, 'name' => 'Carrot', 'category' => 'Vegetable', 'url' => 'http://example.com/carrot'],
    ['id' => 3, 'name' => 'Banana', 'category' => 'Fruit', 'url' => 'http://example.com/banana'],
    ['id' => 4, 'name' => 'Spinach', 'category' => 'Vegetable', 'url' => 'http://example.com/spinach']
];

// အသုံးပြု array_column အားလုံးကိုထုတ်ယူပါ category လယ်ကွင်း
$categories = array_column($documents, 'category');
print_r($categories);

// တည်ဆောက် Elasticsearch 查询လယ်ကွင်း数组
$searchTerm = 'Fruit';
$query = [
    'query' => [
        'terms' => [
            'category' => array_column(
                array_filter($documents, function($doc) use ($searchTerm) {
                    return $doc['category'] === $searchTerm;
                }),
                'id'
            )
        ]
    ]
];

// RESSEACY REANTS အကြောင်းအရာ
print_r($query);

?>

4 ။ အကျဉ်းချုပ်

အထူးသဖြင့်ကျွန်ုပ်တို့လိုအပ်သောနယ်ပယ်များကိုထိရောက်စွာဖြည့်ဆည်းပေးနိုင်သည့် elast ခွဲစိတ်ဆိုင်ရာရှာဖွေမှုများကိုတည်ဆောက်ရာတွင်အထူးသဖြင့် elasticsange query များကိုတည်ဆောက်ရာတွင်အချက်အလက်များကိုဖြည့်ဆည်းပေးရန်အလွန်သင့်လျော်သည်

သင်၏ဒေတာအရင်းအမြစ်တွင်စာရွက်စာတမ်းအမြောက်အများပါ 0 င်ပါက array_column function ကိုအသုံးပြုခြင်းသည် code ၏ရိုးရှင်းမှုနှင့်ဖတ်နိုင်မှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။

အခြားခင်းကျင်းခြင်းလုပ်ငန်းများကိုပေါင်းစပ်ခြင်းဖြင့် ( array_filter ) နှင့် array_column) နှင့် array_column ကို ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကွဲပြားခြားနားသောစုံစမ်းမှုလိုအပ်ချက်များကိုဖြည့်ဆည်းရန် ElastInsearch အတွက်ရှုပ်ထွေးသောစုံစမ်းမှုအကဲဖြတ်ရန်ပြင်ဆင်မှုများပြုလုပ်နိုင်သည်။

ဒီဆောင်းပါးကသင့်ကိုကူညီလိမ့်မယ်လို့မျှော်လင့်ပါတယ်။ အကယ်. သင့်တွင်မေးခွန်းများရှိပါက PHP ခင်းကျင်းဆင်ရေးကျွမ်းကျင်မှုများအကြောင်းပိုမိုသိလိုပါက ကျေးဇူးပြု. မေးခွန်းများမေးပါ။