All Products
Search
Document Center

OpenSearch:Pemrosesan pencarian

Last Updated:Aug 22, 2026

Sistem menyediakan sintaks pencarian yang kaya untuk memenuhi kebutuhan pencarian berbagai skenario.

URL

/v3/openapi/apps/$app_name/search?fetch_fields=name&query=config=format:fulljson&&query=name:'zhangsan'&&sort=id

  • $app_name: Nama aplikasi. Edisi Premium dan Standard Edition merupakan versi multi-aplikasi. Anda harus menentukan nama aplikasi untuk mengakses aplikasi yang sedang dalam layanan.

  • URL di atas menghilangkan header permintaan, encoding, dan faktor lainnya.

  • URL di atas menghilangkan alamat host untuk mengakses aplikasi.

  • Untuk definisi, penggunaan, dan contoh parameter kueri dalam URL di atas, lihat bagian **Parameter kueri** di bawah ini.

Protokol permintaan

HTTP

Metode permintaan

GET

Format yang didukung

JSON

Parameter kueri

Untuk detail cara menggabungkan parameter kueri, lihat dokumen mekanisme penandatanganan API v3.

Parameter

Tipe

Wajib

Nilai valid

Nilai default

Deskripsi

query

string

Ya

Badan utama pencarian. Parameter ini tidak boleh kosong. Mendukung klausa seperti config, query, sort, filter, aggregate, distinct, dan kvpair.

fetch_fields

string

Tidak

Semua bidang displayable.

Menentukan bidang yang akan dikembalikan dalam hasil kueri. Pisahkan beberapa bidang dengan titik koma (;). Ini sesuai dengan fitur kolom tampilan default di Konsol.

disable

string

Tidak

Menonaktifkan fitur parameter tertentu yang sedang aktif.

first_rank_name

string

Tidak

Nama ekspresi pengurutan kasar default di sistem.

Menetapkan nama fungsi pengurutan kasar. Hanya satu nama pengurutan kasar yang didukung.

second_rank_name

string

Tidak

Nama ekspresi penyortiran default untuk layanan

Menetapkan nama fungsi pengurutan presisi. Hanya satu nama pengurutan presisi yang didukung.

user_id

string

Tidak

Mengidentifikasi end user yang memulai permintaan pencarian saat ini. Parameter ini dapat diatur ke salah satu nilai berikut, diurutkan berdasarkan prioritas menurun: 1. ID logon jangka panjang end user. 2. IMEI perangkat seluler end user.

re_search

string

Tidak

Menetapkan kebijakan penelusuran ulang. Saat ini, Anda hanya dapat menetapkan kebijakan berdasarkan ambang batas total hits.

biz

string

Tidak

Menjelaskan informasi bisnis terkait permintaan, seperti jenis bisnis tempat permintaan berasal.

summary

string

Tidak

Mengambil konfigurasi ringkasan hasil pencarian sistem.

Mengonfigurasi ringkasan hasil pencarian. Anda dapat menentukan bidang untuk penyorotan, pemotongan, dan operasi lainnya.

query clause

string

Ya

Menetapkan kondisi pencarian.

config clause

string

Tidak

Menetapkan format data dan jumlah dokumen yang akan dikembalikan.

filter clause

string

Tidak

Menetapkan kondisi filter.

sort clause

string

Tidak

Menetapkan kondisi pengurutan dokumen. Hanya mendukung pengurutan berdasarkan satu bidang bertipe int. Ini terbatas pada API v3 dan SDK.

Penggunaan parameter kueri

  • query: Parameter `query` dapat menggabungkan beberapa klausa untuk memenuhi beragam kebutuhan pencarian. Klausa dalam parameter `query` dihubungkan oleh &&.

  • fetch_fields: Ukuran data teks yang dikembalikan berdampak signifikan terhadap kinerja. Ambil hanya bidang yang diperlukan. Jika parameter ini dikonfigurasi di SDK atau API, maka akan menggantikan konfigurasi terkait di Konsol.

  • qp: Jika parameter ini dikonfigurasi di SDK atau API, maka akan menggantikan konfigurasi terkait di Konsol.

Catatan: Anda dapat melihat efek dan hasil `qp` pada halaman uji pencarian di Konsol. API dan SDK saat ini tidak mengekspos informasi ini.

  • disable: Anda dapat menggunakan parameter ini untuk menonaktifkan fitur-fitur untuk parameter seperti `qp`, `summary`, `first_rank`, `second_rank`, dan `re_search`.

    Deskripsi fitur

    • Parameter ini mengontrol apakah fitur tertentu dinonaktifkan selama kueri.

    • Anda dapat menonaktifkan fitur seperti analisis query, penyorotan, pengurutan kasar dan presisi, serta penelusuran ulang.

    Format parameter:

    disable=function[;function]
    function=function_name[:function_param]
    • Contoh:

      • Untuk menonaktifkan analisis query, atur `disable=qp`.

      • Untuk menonaktifkan fitur `spell_check` dalam analisis query, atur `disable=qp:spell_check`.

      • Untuk menonaktifkan penelusuran ulang, atur `disable=re_search`.

  • first_rank_name: Jika parameter ini dikonfigurasi di SDK atau API, maka akan menggantikan konfigurasi terkait di Konsol.

  • second_rank_name: Jika parameter ini dikonfigurasi di SDK atau API, maka akan menggantikan konfigurasi terkait di Konsol.

  • user_id:

    • Saat Anda mengatur parameter ini dalam permintaan pencarian, nilai `user_id` harus di-URL-encode.

  • raw_query:

    Deskripsi fitur

    • Parameter ini menentukan kueri pencarian asli yang dimasukkan oleh end user.

    Format parameter:

    raw_query=content
    • content: Kueri pencarian asli.

  • re_search:

    Deskripsi fitur

    • Parameter ini menetapkan kebijakan penelusuran ulang. Saat ini, Anda hanya dapat menetapkan kebijakan berdasarkan ambang batas total hits.

    Format parameter:

    re_search=strategy:threshold,params:total_hits#${COUNT}
    • COUNT: Batas atas untuk `total_hits` yang memicu penelusuran ulang. Penelusuran ulang dilakukan jika `total_hits` kurang dari COUNT.

    • Contoh:

      • re_search=url_encode(strategy:threshold,params:total_hits#6)

  • biz:

    Deskripsi fitur

    • Parameter ini menjelaskan informasi bisnis terkait permintaan, seperti jenis bisnis tempat permintaan berasal.

      Format parameter:

      biz=type:$TYPE
    • type: Jenis traffic. Anda dapat menentukan nilainya. Anda dapat menggunakan nilai ini nanti untuk membedakan sumber traffic berbeda dalam laporan.

    • Contoh:

      • biz=type:home_page

  • vector_threshold:

  • Deskripsi fitur

    • Parameter ini mengontrol ambang batas skor vektor untuk pemanggilan dokumen dalam pencarian vektor. Hanya dokumen dengan skor vektor kurang dari nilai ini yang dikembalikan.

  • Format parameter:

      vector_threshold=14.0
    • Nilainya adalah bilangan titik mengambang.

    • Parameter ini opsional. Jika tidak diatur, sistem menggunakan ambang batas bawaan.

  • summary:

    • Parameter `summary_element_prefix` dan `summary_element_postfix` harus diatur secara bersamaan.

    • Parameter `summary_element` dan pasangan (`summary_element_prefix`, `summary_element_postfix`) saling memengaruhi. Konfigurasi yang muncul belakangan akan menggantikan yang muncul lebih awal.

    • Saat ini, Anda tidak dapat mengonfigurasi ringkasan dan penyorotan secara terpisah.

    • Jika parameter ini dikonfigurasi di SDK atau API, maka akan menggantikan konfigurasi terkait di Konsol.

Parameter

Tipe

Wajib

Nilai valid

Nilai default

Deskripsi

summary_field

string

Ya

Bidang yang akan diringkas.

summary_element

string

Tidak

em

Tag penyorotan adalah tag HTML tanpa tanda kurung sudutnya.

summary_ellipsis

string

Tidak

…

Tanda elipsis di akhir ringkasan.

summary_snipped

int

Tidak

1

Jumlah cuplikan ringkasan yang dipilih.

summary_len

string

Tidak

Panjang cuplikan ringkasan yang ditampilkan.

summary_element_prefix

string

Tidak

Awalan untuk penyorotan. Harus berupa tag HTML lengkap, seperti <em>.

summary_element_postfix

string

Tidak

Akhiran untuk penyorotan. Harus berupa tag HTML lengkap, seperti </em>.

Hasil pengembalian

Parameter

Tipe

Deskripsi

status

string

Hasil eksekusi. `OK` menunjukkan sukses. `FAIL` menunjukkan gagal. Jika permintaan gagal, lakukan troubleshooting berdasarkan kode kesalahan yang dikembalikan.

request_id

string

ID catatan kueri. Terutama digunakan untuk troubleshooting.

result

JSON

Hasil aktual. Termasuk informasi seperti waktu kueri (`searchtime`), jumlah total hasil dari engine (`total`), jumlah hasil yang dikembalikan untuk permintaan saat ini (`num`), jumlah maksimum hasil yang dapat dikembalikan untuk kueri (`viewtotal`), hasil kueri (`items`), dan hasil statistik (`facet`).

errors

list

Kode kesalahan dan pesan. `message` merepresentasikan pesan kesalahan. Untuk makna `code`, lihat dokumen Deskripsi Kode Kesalahan.

  • searchtime: Waktu, dalam detik, yang dikonsumsi engine untuk memproses permintaan.

  • Perbedaan antara `total`, `viewtotal`, dan `num`: `total` adalah jumlah hasil yang memenuhi kondisi kueri di engine, tanpa mempertimbangkan klausa `config`. Nilai ini merupakan perkiraan ketika ada banyak hasil dan umumnya digunakan untuk tujuan tampilan. `viewtotal` adalah jumlah maksimum hasil yang dikembalikan engine karena alasan kinerja dan relevansi. Untuk melakukan paging melalui hasil, `start` + `hit` harus kurang dari `viewtotal`. `num` adalah jumlah aktual item yang dikembalikan untuk permintaan saat ini. Nilai ini dibatasi oleh parameter `start` dan `hit` dalam klausa `config` dan tidak melebihi nilai `hit`.

  • compute_cost: Array yang berisi satu elemen map. `index_name` adalah ID aplikasi, dan `value` adalah jumlah Logic Compute Unit (LCU) yang dikonsumsi oleh kueri.

  • items: Berisi data yang diambil. Parameter fields berisi konten hasil pencarian.

  • variableValue: Hasil pengembalian parameter kustom, seperti nilai jarak. Node `variableValue` hanya ditampilkan jika format dalam klausa config diatur ke xml atau fulljson. Secara default, node ini tidak ditampilkan dalam format `json`.

  • sortExprValues: Skor pengurutan dokumen terkait.

  • facet: Menyimpan informasi yang dikembalikan oleh klausa Aggregate.

  • Tipe bidang array: Jika bidang array dikembalikan dalam format `json` atau `fulljson`, datanya dipisahkan oleh `\t`. Jika dikembalikan dalam format `xml`, datanya dipisahkan oleh spasi.

Contoh pencarian

Respons JSON

{
 "result": {
  "searchtime": 0.009554,
  "total": 1,
  "compute_cost": [
   {
    "index_name": "110247758",
    "value": 0.304
   }
  ],
  "num": 1,
  "viewtotal": 1,
  "items": [
   {
    "variableValue": {

    },
    "sortExprValues": [
     "10000"
    ],
    "property": {

    },
    "attribute": {

    },
    "fields": {
     "size": "XL",
     "discount_price": "9.9",
     "pid": "950",
     "range_age": "18\t25",
     "detail": "Men's jacket lapel 2021 spring and autumn new youth thin top casual zipper jacket",
     "index_name": "110247758"
    }
   }
  ],
  "facet": []
 },
 "ops_request_misc": "%7B%22request%5Fid%22%3A%22162642700916781929257960%22%2C%22scm%22%3A%2220140713.110229359..%22%7D",
 "tracer": "",
 "request_id": "162642700916781929257960",
 "errors": [],
 "status": "OK"
}

Respons kesalahan

{
 "result": {
  "searchtime": 0.003999,
  "total": 0,
  "compute_cost": [
   {
    "index_name": "110247758",
    "value": 0.232
   }
  ],
  "num": 0,
  "viewtotal": 0,
  "items": [],
  "facet": []
 },
 "ops_request_misc": "%7B%22request%5Fid%22%3A%22162642716516781913069826%22%2C%22scm%22%3A%2220140713.110229359..%22%7D",
 "tracer": "",
 "request_id": "162642716516781913069826",
 "errors": [
  {
   "code": 6127,
   "message": "Attribute not exist."
  }
 ],
 "status": "FAIL"
}
  • Catatan: Status `FAIL` menunjukkan terjadi kesalahan dan tidak ada hasil yang dikembalikan. Namun, dalam beberapa kasus, baik kesalahan maupun hasil dapat dikembalikan. Dalam kasus tersebut, statusnya adalah `OK`. Misalnya, jika terjadi `kesalahan server 1000` (timeout pencarian) atau kesalahan `2112` (indeks untuk pengurutan presisi tidak ditentukan), hasil mungkin tetap dikembalikan.

Pemindaian scroll

Pencarian tradisional dirancang untuk mengambil hasil paling relevan dalam waktu sesingkat mungkin. Oleh karena itu, jumlah hasil pencarian dibatasi. Misalnya, metode pencarian dapat mengambil maksimal 5.000 dokumen. Dalam beberapa skenario, Anda mungkin perlu mengambil lebih banyak hasil untuk analisis. Anda dapat menggunakan API scroll untuk mengambil jumlah hasil yang lebih besar.

Klausa yang didukung

  • Klausa `query`.

  • Klausa `config`. Parameter `start` tidak valid dalam klausa ini.

  • Klausa `filter`.

  • Klausa `sort`. Klausa ini hanya mendukung pengurutan berdasarkan satu bidang bertipe `int` dan terbatas pada API v3 dan SDK.

URL

Kueri awal

/v3/openapi/apps/$app_name/search?search_type=scan&scroll=1m&query_parameters

Kueri berikutnya

/v3/openapi/apps/$app_name/search?scroll_id=$scroll_id&scroll=1m&query_parameters

  • $app_name: Nama aplikasi.

  • URL di atas menghilangkan alamat host untuk mengakses aplikasi.

  • URL permintaan scroll di atas menghilangkan header permintaan, konten parameter kueri, encoding, dan faktor lainnya. Untuk URL permintaan scroll lengkap, lihat contoh di bawah.

  • Metode scroll memiliki fungsionalitas terbatas dan tidak mendukung sebagian besar fitur. Untuk informasi lebih lanjut tentang batasan spesifik, lihat catatan di bagian bawah.

Protokol permintaan

HTTP

Metode permintaan HTTP

GET

Format yang didukung

JSON

Parameter kueri

Parameter

Tipe

Wajib

Nilai valid

Nilai default

Deskripsi

scroll

STRING

Ya

Minggu, Hari, Jam, menit, detik

Menentukan periode validitas untuk permintaan scroll berikutnya. Anda harus mengatur parameter ini untuk setiap permintaan. Misalnya, `1m` berarti 1 menit. Satuan waktu yang didukung meliputi: `w` untuk Minggu, `d` untuk Hari, `h` untuk Jam, `m` untuk menit, dan `s` untuk detik.

search_type

STRING

Ya

scan

Parameter ini wajib untuk kueri pertama. Tidak diperlukan untuk kueri berikutnya. Kueri berikutnya dilakukan dengan menentukan `scroll_id`.

scroll_id

string

Ya

Pemanggilan pertama ke metode scroll mengembalikan `scroll_id` tetapi tidak menyertakan data. Untuk setiap pencarian berikutnya, Anda harus menentukan `scroll_id` dari respons sebelumnya. Hasil pencarian berikutnya akan menyertakan `scroll_id` baru dan data terkait. Parameter ini wajib untuk semua kueri berikutnya.

query clause

string

Ya

Menetapkan kondisi pencarian.

config clause

string

Ya

Menetapkan format data dan jumlah dokumen yang akan dikembalikan.

filter clause

string

Tidak

Menetapkan kondisi filter.

sort clause

string

Tidak

Menetapkan kondisi pengurutan dokumen. Hanya mendukung pengurutan berdasarkan satu bidang bertipe int. Ini terbatas pada API v3 dan SDK.

fetch_fields parameter

string

Tidak

Menentukan bidang aplikasi mana yang akan dikembalikan.

Hasil pengembalian

Parameter

Tipe

Deskripsi

status

string

Hasil eksekusi. `OK` menunjukkan sukses. `FAIL` menunjukkan gagal. Jika permintaan gagal, lakukan troubleshooting berdasarkan kode kesalahan yang dikembalikan.

request_id

string

ID catatan kueri. Terutama digunakan untuk troubleshooting.

result

string

Hasil aktual. Termasuk informasi seperti waktu kueri (`searchtime`), jumlah total hasil dari engine (`total`), jumlah hasil yang dikembalikan untuk permintaan saat ini (`num`), jumlah maksimum hasil yang dapat dikembalikan untuk kueri (`viewtotal`), hasil kueri (`items`), hasil statistik (`facet`), dan `scroll_id`.

errors

string

Konten kesalahan. `error_message` merepresentasikan pesan kesalahan. Untuk informasi lebih lanjut tentang makna `error_code`, lihat dokumen Kode kesalahan.

Catatan

API scroll saat ini hanya mendukung format respons `fulljson` dan `json`.

Contoh scroll

Catatan

Dalam klausa `config`, parameter `start` tidak valid. Anda dapat menggunakan parameter `hit` untuk mengatur jumlah dokumen yang diambil dalam setiap batch. Fitur seperti `aggregate`, `distinct`, dan ekspresi pengurutan kasar serta presisi tidak valid. Klausa `sort` hanya mendukung pengurutan berdasarkan satu bidang bertipe `int`. Kueri scroll lintas beberapa aplikasi tidak didukung. Jika Anda memberikan `scroll_id` yang tidak valid, kesalahan akan dilaporkan. Format respons yang didukung adalah `fulljson` dan `json`. Kueri pertama hanya mengembalikan `scroll_id` dan tidak ada data dokumen. Anda harus melakukan kueri lain dan memberikan `scroll_id` dari respons sebelumnya untuk mengambil data.

Permintaan pertama

Catatan

Contoh ini menghilangkan header permintaan, encoding, dan faktor lainnya.

http://$host/v3/openapi/apps/app_schema_demo/search?query=config=start:0,hit:1,format:fulljson,rerank_size:200&&query=name:'search'&&sort=+id&&filter=id>0&search_type=scan&scroll=1m&fetch_fields=id;name;phone;int_arr;literal_arr;float_arr;cate_id

Respons sukses

{
  "status": "OK",
  "request_id": "150150574119953661605242",
  "result": {
    "searchtime": 0.005029,
    "total": 1,
    "num": 0,
    "viewtotal": 1,
    "scroll_id": "eJxtUMtuhDAM/BrvOYQC5cABdulvRFFIirsm2TpBavv1Ndut1EMlS36NZ0Y2ZHMxbueceAjIuWCMnrPjRITLyfzZm83y9V QVGT8x80U3PxQNUqieVZV1/an4ItbTUBPSx5wgXqKdvOSbmuKR8ZYjGWWirB4tvToAiX7u3G2eCNK77vnz8GlGPAV6suKBeqxAn0OiTd7NGEnesspyoyFLF6hecn4JUKjVgp0K3FnkfMfIyPoDuYWegX9GeYOpicY9TG8gwOSuBL04X1 MMg3ROwCesLlG6X7a2o=",
    "items": [],
    "facet": []
  },
  "errors": [],
  "tracer": ""
}

Permintaan berikutnya

Catatan

Contoh ini menghilangkan detail seperti header permintaan dan encoding.

http://$host/v3/openapi/apps/app_schema_demo/search?fetch_fields=id;name;phone;int_arr;literal_arr;float_arr;cate_id&query=config=start:0,hit:1,format:fulljson,rerank_size:200&&query=name:'search'&&sort=+id&&filter=id>0&scroll=1m&scroll_id=eJxtUMtuhDAM/BrvOYQC5cABdulvRFFIirsm2TpBavv1Ndut1EMlS36NZ0Y2ZHMxbueceAjIuWCMnrPjRITLyfzZm83y9V+QVGT8x80U3PxQNUqieVZV1/an4ItbTUBPSx5wgXqKdvOSbmuKR8ZYjGWWirB4tvToAiX7u3G2eCNK77vnz8GlGPAV6suKBeqxAn0OiTd7NGEnesspyoyFLF6hecn4JUKjVgp0K3FnkfMfIyPoDuYWegX9GeYOpicY9TG8gwOSuBL04X1+MMg3ROwCesLlG6X7a2o=

Nilai pengembalian

{
  "status": "OK",
  "request_id": "150150574119952551519970",
  "result": {
    "searchtime": 0.006293,
    "total": 1,
    "num": 1,
    "viewtotal": 1,
    "scroll_id": "eJxNT9tugzAM/RrznIRC4YEHaNlvRFFIhteQtE6Qtn39TNdJk2z5dnx8rIPJRdudcqKhl60Uir2Vp06ISv8b6s3QbZCVzpaCdp93XXBzg2wEW9MJ2dWq8q7YVXt0YckDLlBP0WyOw31N8YgYizZEnAUsjkx4VT4k8zexpjiNS/XYHX0NNkWP71BfVyxQjxLUxSfazFH4PYSPnCL3iMniDZq3jN98aFRCgGrZniy8/itkBHWGuYVeQH+B+QzTCUZ1NJ9gj4FVMfrQPr8Y+Hk+dgU14fIDVhtfTw==",
    "items": [
      {
        "fields": {
          "cate_id": "0",
          "float_arr": "0",
          "id": "1",
          "int_arr": "0",
          "literal_arr": "search",
          "name": "search",
          "phone": "123****5678",
          "index_name": "app_schema_demo"
        },
        "property": {},
        "attribute": {},
        "variableValue": {},
        "sortExprValues": [
          "1"
        ]
      }
    ],
    "facet": []
  },
  "errors": [],
  "tracer": ""
}