Meningkatkan kualitas penelusuran

Kualitas penelusuran merujuk pada kualitas hasil penelusuran dari segi peringkat dan recall seperti yang diterima oleh pengguna saat membuat kueri penelusuran.

Peringkat merujuk pada urutan item dan recall merujuk pada jumlah item relevan yang diambil. Item (juga disebut sebagai dokumen) adalah bagian dari konten digital yang dapat diindeks oleh Google Cloud Search. Jenis item meliputi dokumen Microsoft Office, file PDF, baris dalam database, URL unik, dan lainnya. Item terdiri dari:

  • Metadata terstruktur
  • Konten yang dapat diindeks
  • ACL

Cloud Search menggunakan berbagai sinyal untuk mengambil dan membuat peringkat hasil kueri penelusuran; item yang dihasilkan dari kueri penelusuran. Anda dapat memengaruhi sinyal Cloud Search melalui setelan dalam skema, konten dan metadata item (selama pengindeksan), dan aplikasi penelusuran. Sasaran dokumen ini adalah membantu Anda meningkatkan kualitas penelusuran melalui modifikasi penentu sinyal tersebut.

Untuk mengetahui ringkasan setelan opsional dan yang direkomendasikan, lihat Ringkasan setelan kualitas penelusuran opsional dan yang direkomendasikan.

Memengaruhi skor topikalitas

Topikalitas merujuk pada relevansi hasil penelusuran dengan istilah kueri asal. Topikalitas suatu item dihitung berdasarkan kriteria berikut:

  • Tingkat kepentingan dari setiap istilah kueri.
  • Jumlah klik (frekuensi istilah kueri muncul dalam konten atau metadata item).
  • Jenis kecocokan yang dimiliki istilah kueri dan variasinya, dengan item yang diindeks dalam Cloud Search.

Untuk memengaruhi skor topikalitas properti teks, tentukan RetrievalImportance pada properti teks dalam skema Anda. Kecocokan pada properti dengan RetrievalImportance tinggi akan menghasilkan skor yang lebih tinggi dibandingkan dengan kecocokan pada properti dengan RetrievalImportance rendah.

Misalnya, Anda memiliki sumber data dengan karakteristik berikut:

  • Sumber data digunakan untuk menyimpan histori bug software.
  • Setiap bug memiliki nama, deskripsi, dan prioritas.

Sebagian besar pengguna akan membuat kueri pada sumber data ini menggunakan nama bug, sehingga tetapkan RetrievalImportance pada nama tersebut ke HIGHEST dalam skema.

Sebaliknya, sebagian besar pengguna tidak dapat membuat kueri pada sumber data ini menggunakan deskripsi bug, sehingga tetapkan RetrievalImportance pada deskripsi ke DEFAULT. Berikut ini adalah skema sampel yang berisi setelan RetrievalImportance.

{
  "objectDefinitions": [
    {
      "name": "issues",
      "propertyDefinitions": [
        {
          "name": "summary",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": HIGHEST
              }
            }
          },
        {
          "name": "description",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": DEFAULT
              }
            }
          },
        {
          "name": "label",
            "isRepeatable": true,
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": DEFAULT
              }
            }
          },
        {
          "name": "comments",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": DEFAULT
              }
            }
          },
        {
          "name": "project",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": HIGH
              }
            }
          },
        {
          "name": "duedate",
          "datePropertyOptions": {
          }
        },
        ...
      ]
    }
  ]
}

Dalam kasus dokumen HTML, tag seperti <title> dan <h1>, beserta setelan format seperti ukuran font dan huruf tebal, digunakan untuk menentukan tingkat kepentingan berbagai istilah. Jika ContentFormat bernilai TEXT, ItemContent memiliki tingkat kepentingan pengambilan DEFAULT dan jika itu HTML, tingkat kepentingan pengambilannya ditentukan berdasarkan properti HTML.

Memengaruhi keaktualan

Keaktualan mengukur seberapa baru item telah diubah dan ditentukan oleh properti createTime dan updateTime di ItemMetadata. Item yang lebih aktual akan menerima peningkatan peringkat.

Anda dapat memengaruhi penghitungan keaktualan sebuah objek dengan menyesuaikan freshnessProperty dan freshnessDuration pada FreshnessOptions dalam skema.

Dengan freshnessProperty, Anda dapat menggunakan properti tanggal atau stempel waktu untuk menghitung keaktualan, bukan updateTime default.

Di contoh sistem pelacakan bug software kami sebelumnya, batas waktu dapat digunakan sebagai freshnessProperty sehingga item dengan batas waktu yang paling dekat dengan tanggal saat ini dianggap "lebih aktual" dan menerima peningkatan peringkat. Berikut ini adalah skema sampel yang berisi setelan freshnessProperty:

{
  "objectDefinitions": [
    {
      "name": "issues",
      "options": {
        "freshnessOptions": {
          "freshnessProperty": "duedate"
        }
      },
      "propertyDefinitions": [
        {
          "name": "summary",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": HIGHEST
            }
          }
        },
        {
          "name": "duedate",
          "datePropertyOptions": {
          }
        },
        ...
      ]
    }
  ]
}

Gunakan freshnessDuration untuk mengidentifikasi kapan suatu item dianggap tidak berlaku lagi. Misalnya, Anda memiliki sumber data yang tidak diindeks secara berkala, atau Anda tidak ingin keaktualan memengaruhi peringkat. Anda dapat mencapai sasaran tersebut dengan menentukan nilai tinggi untuk freshnessDuration.

Misalnya, Anda memiliki sumber data dengan informasi profil karyawan. Dalam skenario ini, Anda ingin agar freshnessDuration bernilai tinggi karena perubahan informasi karyawan sering kali tidak relevan dengan peringkat karyawan. Berikut ini adalah skema sampel yang berisi setelan freshnessDuration:

{
  "objectDefinitions": [
    {
      "name": "people",
      "options": {
        "freshnessOptions": {
          "freshnessDuration": "315360000s", # 100 years
        }
      },
    }
  ]
}

Anda juga dapat menetapkan freshnessDuration ke nilai yang sangat kecil untuk sumber data yang kontennya berubah dengan cepat, seperti sumber data yang berisi artikel berita. Dalam skenario ini, dokumen yang paling baru dibuat atau diubah akan menjadi yang paling relevan. Berikut ini adalah skema sampel yang berisi setelan freshnessDuration untuk sumber data yang berisi konten yang berubah dengan cepat:

{
  "objectDefinitions": [
    {
      "name": "news",
      "options": {
        "freshnessOptions": {
          "freshnessDuration": "259200s", # 3 days
        }
      },
    }
  ]
}

Memengaruhi kualitas

Kualitas adalah ukuran akurasi dan kegunaan suatu item. Sumber data dapat berisi beberapa dokumen yang serupa secara semantik, masing-masing dengan tingkat kualitas yang berbeda. Anda dapat menentukan nilai kualitas antara 0 dan 1 menggunakan SearchQualityMetadata. Item dengan nilai yang lebih tinggi akan menerima peningkatan peringkat dibandingkan dengan item dengan nilai yang lebih rendah. Gunakan setelan ini hanya jika Anda perlu memengaruhi atau meningkatkan kualitas item di luar informasi yang diberikan di Cloud Search.

Misalnya, Anda memiliki sumber data yang berisi dokumen tunjangan karyawan. Anda dapat menggunakan SearchQualityMetadata untuk meningkatkan peringkat dokumen yang dibuat oleh karyawan bagian Sumber Daya Manusia (SDM), bukan dokumen yang dibuat oleh karyawan lain.

Berikut ini adalah skema sampel yang berisi setelan SearchQualityMetadata untuk masalah dalam sistem pelacakan bug:

{
  "name": "datasources/.../items/issue1",
  "acl": {
    ...
  },
  "metadata": {
    "title": "Issue 1"
    "objectType": "issues"
  },
  ...
}

{
  "name": "datasources/.../items/issue2",
  "acl": {
    ...
  },
  "metadata": {
    "title": "Issue 2"
    "objectType": "issues"
    "searchQualityMetadata": {
      "quality": 0.5
    }
  },
  ...
}

{
  "name": "datasources/.../items/issue3",
  "acl": {
    ...
  },
  "metadata": {
    "title": "Issue 3"
    "objectType": "issues"
    "searchQualityMetadata": {
      "quality": 1
    }
  },
  ...
}

Dengan skema ini, ketika pengguna melakukan penelusuran menggunakan istilah penelusuran "masalah", Masalah 3 dalam skema (kualitas 1) akan memiliki peringkat yang lebih tinggi daripada Masalah 2 (kualitas .5) dan Masalah 1 (jika nilai kualitas tidak ditentukan, kualitas defaultnya akan bernilai 0).

Memengaruhi dengan jenis kolom

Dengan Cloud Search, Anda dapat memengaruhi peringkat berdasarkan nilai properti enumerasi atau bilangan bulat. Untuk setiap properti bilangan bulat atau enumerasi, nilai OrderedRanking dapat ditentukan. Setelan ini memiliki nilai berikut:

  • NO_ORDER (default): Properti tidak memengaruhi peringkat.
  • ASCENDING: Item dengan nilai properti bilangan bulat atau enumerasi lebih tinggi akan menerima peningkatan peringkat dibandingkan dengan item yang nilainya lebih rendah.
  • DESCENDING: Item dengan nilai properti bilangan bulat atau enumerasi lebih rendah akan menerima peningkatan peringkat dibandingkan dengan item yang nilainya lebih tinggi.

Misalnya, setiap bug dalam sistem pelacakan bug memiliki properti enumerasi untuk menyimpan prioritas bug sebagai HIGH (1), MEDIUM (2), atau LOW (3). Dalam skenario ini, penetapan OrderedRanking sebagai DESCENDING akan meningkatkan peringkat untuk bug prioritas HIGH dibandingkan dengan bug prioritas LOW. Berikut ini adalah skema sampel yang berisi setelan OrderedRanking untuk masalah dalam sistem pelacakan bug:

{
  "objectDefinitions": [
    {
      "name": "issues",
      "options": {
        "freshnessOptions": {
          "freshnessProperty": "duedate",
        }
      },
      "propertyDefinitions": [
        {
          "name": "summary",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": HIGHEST
            }
          }
        },
        {
          "name": "duedate",
          "datePropertyOptions": {
          }
        },
        {
          "name": "priority",
          "enumPropertyOptions": {
            "possibleValues": [
              {
                "stringValue": "HIGH",
                "integerValue": 1
              },
              {
                "stringValue": "MEDIUM",
                "integerValue": 2
              },
              {
                "stringValue": "LOW",
                "integerValue": 3
              }
            ],
            "orderedRanking": DESCENDING,
          }
        },

        ...
      ]
    }
  ]
}

Sistem pelacakan bug juga dapat memiliki properti bilangan bulat yang disebut votes. Properti ini digunakan untuk mengumpulkan masukan dari pengguna terkait tingkat kepentingan relatif dari suatu bug. Anda dapat menggunakan properti votes untuk memengaruhi peringkat dengan memberikan tingkat kepentingan yang lebih tinggi untuk bug dengan suara terbanyak. Dalam hal ini, Anda dapat menentukan OrderedRanking sebagai ASCENDING untuk properti votes sehingga masalah dengan suara terbanyak menerima peningkatan peringkat. Berikut ini adalah skema sampel yang berisi setelan OrderedRanking untuk masalah dalam sistem pelacakan bug:

{
  "objectDefinitions": [
    {
      "name": "issues",
      "propertyDefinitions": [
        {
          "name": "summary",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": HIGHEST
            }
          }
        },
        {
          "name": "description",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": DEFAULT
            }
          }
        },
        {
          "name": "votes",
          "integerPropertyOptions": {
            "orderedRanking": ASCENDING,
            "minimumValue": 0,
            "maximumValue": 1000,
          }
        },

        ...
      ]
    }
  ]
}

Memengaruhi peringkat melalui perluasan kueri

Perluasan kueri merujuk pada perluasan istilah dalam kueri yang menggunakan sinonim dan ejaan untuk mendapatkan hasil yang lebih baik.

Menggunakan sinonim untuk memengaruhi hasil penelusuran

Cloud Search menggunakan sinonim yang diasumsikan dari konten web publik untuk memperluas istilah kueri. Anda juga dapat menentukan sinonim kustom untuk mengambil terminologi khusus organisasi, seperti akronim umum yang digunakan dalam organisasi atau terminologi khusus industri.

Sinonim kustom dapat ditentukan dalam sumber data atau sebagai sumber data terpisah. Sinonim kustom diterapkan pada semua aplikasi penelusuran di domain, tanpa memerhatikan tempat sinonim tersebut ditentukan. Untuk mengetahui informasi tentang cara menentukan sinonim kustom, lihat Menentukan sinonim.

Menggunakan ejaan untuk memengaruhi hasil penelusuran

Cloud Search memberikan saran ejaan berdasarkan model yang dibuat menggunakan data Google Penelusuran publik. Jika mendeteksi kesalahan ejaan dalam konteks kueri, Cloud Search akan menampilkan kueri yang disarankan di SpellResult. Ejaan yang disarankan dapat ditampilkan kepada pengguna sebagai saran. Misalnya, pengguna mungkin salah mengeja istilah kueri "karyawn" dan dapat menerima saran "Apakah yang Anda maksud karyawan?"

Cloud Search juga menggunakan koreksi ejaan sebagai sinonim untuk membantu mendapatkan dokumen yang mungkin terlewatkan karena kesalahan ejaan.

Memengaruhi peringkat melalui setelan aplikasi penelusuran

Seperti yang telah disebutkan dalam Pengantar Google Cloud Search, Aplikasi Penelusuran adalah sekelompok setelan yang memberikan informasi kontekstual tentang penelusuran jika dikaitkan dengan antarmuka penelusuran. Dengan konfigurasi berikut, Anda dapat memengaruhi peringkat melalui aplikasi penelusuran:

  • Konfigurasi pemberian skor
  • Konfigurasi sumber

Dua bagian berikut berisi penjelasan tentang kegunaan konfigurasi tersebut dalam memengaruhi peringkat.

Menyesuaikan konfigurasi pemberian skor

Untuk setiap aplikasi penelusuran, Anda dapat menentukan ScoringConfig yang digunakan untuk mengontrol beberapa sinyal aplikasi selama penentuan peringkat. Untuk saat ini, Anda dapat menonaktifkan keaktualan dan personalisasi.

Jika keaktualan dinonaktifkan, semua sumber data yang tercantum dalam aplikasi penelusuran akan dinonaktifkan, terlepas dari opsi keaktualan yang ditentukan dalam skema untuk sumber data. Demikian juga, jika personalisasi dinonaktifkan, peningkatan pemilik dan interaksi tidak akan memengaruhi peringkat.

Untuk mengetahui petunjuk langkah demi langkah terkait cara mengonfigurasi setelan ini, lihat Membuat pengalaman penelusuran khusus.

Menyesuaikan konfigurasi sumber

Dengan konfigurasi sumber, Anda dapat menentukan setelan tingkat sumber data dalam aplikasi penelusuran. Berikut ini adalah setelan yang didukung:

  • Tingkat kepentingan sumber
  • Crowding

Menetapkan tingkat kepentingan sumber

Tingkat kepentingan sumber merujuk pada tingkat kepentingan relatif dari sumber data dalam aplikasi penelusuran. Setelan ini dapat ditentukan pada kolom SourceImportance dalam SourceScoringConfig. Item dari sumber data dengan tingkat kepentingan sumber HIGH akan menerima peningkatan peringkat dibandingkan dengan item dari sumber data dengan tingkat kepentingan sumber DEFAULT atau LOW. Gunakan setelan ini untuk memengaruhi peringkat jika menurut Anda pengguna lebih menginginkan hasil dari sumber data tertentu.

Misalnya, Anda memiliki portal dukungan produk yang berisi data pemecahan masalah eksternal dan internal. Dalam skenario ini, Anda ingin mengonfigurasi aplikasi penelusuran Anda untuk memprioritaskan hasil dari sumber data internal.

Untuk mengetahui petunjuk langkah demi langkah terkait cara mengonfigurasi setelan ini, lihat Membuat pengalaman penelusuran khusus.

Menetapkan crowding

Crowding merujuk pada jumlah maksimum hasil yang dapat ditampilkan dari sumber data dalam aplikasi penelusuran. Nilai ini dapat dikontrol menggunakan kolom numResults di SourceCrowdingConfig. Setelan defaultnya bernilai 3 yang berarti jika kita telah menampilkan 3 hasil dari sumber data, Cloud Search akan mulai menyajikan hasil dari sumber data lainnya. Item dari sumber data pertama akan dipertimbangkan kembali hanya jika semua sumber data telah mencapai batas crowding, atau sumber data lainnya tidak menyajikan hasil lagi.

Setelan ini sangat membantu dalam memastikan keragaman hasil penelusuran dan mencegah satu sumber data mendominasi halaman hasil penelusuran.

Untuk mengetahui petunjuk langkah demi langkah terkait cara mengonfigurasi setelan ini, lihat Membuat pengalaman penelusuran khusus.

Memengaruhi peringkat melalui personalisasi

Personalisasi merujuk pada presentasi hasil penelusuran yang dipersonalisasi berdasarkan setiap pengguna yang mengakses hasil tersebut. Anda dapat memengaruhi peringkat dengan memprioritaskan item berdasarkan kriteria berikut:

  • Kepemilikan item
  • Interaksi item
  • Bahasa item

Tiga bagian berikut membahas cara memengaruhi kualitas penelusuran berdasarkan kriteria tersebut.

Memengaruhi peringkat berdasarkan kepemilikan item

Kepemilikan item merujuk pada pemberian peningkatan peringkat pada item yang dimiliki oleh pengguna yang melakukan kueri penelusuran. Setiap item memiliki ItemAcl dengan kolom owners. Jika pengguna yang menjalankan kueri adalah pemilik item, item tersebut akan menerima peningkatan peringkat secara default. Anda dapat menonaktifkan personalisasi di aplikasi penelusuran.

Meningkatkan peringkat berdasarkan interaksi item

Interaksi item merujuk pada pemberian peningkatan peringkat pada item yang berinteraksi dengan kueri penelusuran (dilihat, diberi komentar, diedit, dan lainnya).

Sinyal interaksi item diperoleh secara otomatis untuk produk G Suite seperti Drive, Gmail, dan lainnya. Untuk produk lain, Anda dapat memberikan data interaksi tingkat item, termasuk jenis interaksi (lihat, edit), stempel waktu interaksi, dan prinsipal (pengguna yang berinteraksi dengan item). Perlu diperhatikan bahwa item dengan interaksi terbaru mendapatkan peningkatan peringkat yang lebih tinggi.

Memengaruhi peringkat melalui interpretasi kueri

Fitur interpretasi kueri Cloud Search secara otomatis menginterpretasikan operator dan filter dalam kueri pengguna, serta mengonversi elemen tersebut menjadi kueri terstruktur berbasis operator. Interpretasi kueri menggunakan operator yang ditetapkan dalam skema, bersamaan dengan dokumen yang diindeks, untuk menyimpulkan maksud dari kueri pengguna. Dengan fitur ini, pengguna dapat melakukan penelusuran dengan kata kunci yang minimal, tetapi tetap mendapatkan hasil yang tepat. Untuk mengetahui informasi lebih lanjut, lihat Membuat struktur skema untuk mendapatkan interpretasi kueri yang optimal.

Meningkatkan peringkat berdasarkan bahasa item

Bahasa merujuk pada demosi peringkat pada item yang bahasanya tidak cocok dengan bahasa kueri. Hal-hal berikut ini memengaruhi peringkat item berdasarkan bahasa:

  • languageCode ditentukan dalam RequestOptions.
  • Bahasa yang terdeteksi otomatis dari kueri penelusuran.
  • Bahasa item (contentLanguage di ItemMetadata atau bahasa yang terdeteksi otomatis di urutan tersebut).

Jika bahasa kueri dan item cocok, demosi bahasa tidak akan diterapkan. Jika setelan ini tidak cocok, item tersebut akan didemosi.

Ringkasan setelan kualitas penelusuran yang direkomendasikan dan opsional

Tabel berikut mencantumkan semua setelan kualitas penelusuran yang direkomendasikan dan opsional. Rekomendasi ini akan membantu Anda mencapai manfaat paling besar dari model peringkat Cloud Search.

SetelanLokasiDirekomendasikan/opsionalDetail
Setelan skema:
Kolom ItemContentItemContentDirekomendasikanSaat membuat atau memperbarui skema Anda, isilah konten yang tidak terstruktur dari suatu item. Kolom ini digunakan untuk membuat cuplikan.
Kolom RetrievalImportanceRetrievalImportanceDirekomendasikanSaat membuat atau memperbarui skema, tetapkan properti teks yang memang penting atau sesuai topik.
FreshnessOptionsFreshnessOptionsOpsionalSaat membuat atau memperbarui skema, tetapkan setelan ini untuk memastikan bahwa item tidak didemosi karena terdapat data yang salah atau jika ada data yang hilang.
Setelan pengindeksan
createTime/updateTimeItemMetadataDirekomendasikanIsilah selama pengindeksan item.
Kolom ownersItemAcl()DirekomendasikanIsilah selama pengindeksan item.
Sinonim kustomSkema _dictionaryEntryDirekomendasikanTetapkan pada tingkat sumber data atau sebagai sumber data terpisah selama pengindeksan.
Kolom qualitySearchQualityMetadataOpsionalUntuk memberikan peningkatan kualitas dasar dibandingkan dengan item lain yang serupa secara semantik, tetapkan kualitas selama pengindeksan. Dengan menetapkan kolom ini untuk semua item dalam sumber data, efeknya akan hilang.
data interaksi tingkat iteminteractionOpsionalJika sumber data merekam dan memberikan akses ke interaksi pengguna, isi interaksi tersebut untuk setiap item selama pengindeksan.
properti bilangan bulat/enumerasiOrderedRankingOpsionalKetika urutan item bersifat relevan, tentukan peringkat yang diurutkan untuk properti bilangan bulat dan enumerasi selama pengindeksan.
Setelan aplikasi penelusuran
Personalization=falseScoringConfig atau menggunakan UI admin CloudSearchDirekomendasikanSaat membuat atau mengupdate aplikasi penelusuran. Pastikan Anda memberikan informasi pemilik yang benar seperti yang dijelaskan dalam Memengaruhi peringkat melalui personalisasi
Kolom SourceImportanceSourceCrowdingConfigOpsionalUntuk membuat hasil bersifat bias dari sumber data tertentu, tetapkan kolom ini.
Kolom numResultsSourceCrowdingConfigOpsionalUntuk mengontrol keragaman hasil, tetapkan kolom ini.

Langkah Berikutnya

Berikut beberapa langkah yang dapat Anda ambil:

  1. Buat struktur skema untuk mendapatkan interpretasi kueri yang optimal.

  2. Pelajari cara memanfaatkan skema _dictionaryEntry guna menentukan sinonim untuk istilah yang umum digunakan di perusahaan Anda. Untuk menggunakan skema _dictionaryEntry, lihat Menentukan sinonim.