Atlas Search
Mengonfigurasi operator Atlas Search, compound/filter, score, highlight, sequence token, paging/count berdasarkan versi 1.0.0.
Atlas Search dasar
$search dan $searchMeta harus menjadi stage pertama dari pipeline agregasi, sehingga terpisah dari alur umum fields(...).end(). Anda juga dapat menggunakan .search() tanpa indeks.
Operator pencarian
• builder root: text, phrase, autocomplete, equals, exists, in, range, compound
• klausa yang dapat digunakan kembali: SearchOperators.text/phrase/autocomplete/equals/in/exists/range
• operator root native Driver: operator(SearchOperator)
• wrapper Driver bernama: SearchOperators.driver(name, operator)
compound mendukung must, mustNot, should, filter, minimumShouldMatch, score dan juga dapat langsung meneruskan AtlasSearchOperator umum.
Teks / Frasa / Autocomplete
• text: path(s), query(ies), fuzzy, matchCriteria, sinonim, score
• phrase: path(s), query(ies), slop, sinonim, score
• autocomplete: single path, query(ies), tokenOrder, fuzzy, score
• fuzzy(...) dan synonyms(...) tidak digunakan bersamaan.
Perbedaan antara Search clause dan fields pasca-pencarian
search().fields(...) adalah $match umum setelah $search, bukan filter internal $search. Untuk membatasi kandidat pada tahap indeks pencarian, gunakan compound.filter(...).
Score dan pengurutan
scoreDesc()/scoreAsc() dan pengurutan umum memiliki prioritas berdasarkan urutan pemanggilan. Untuk pagination yang stabil, disarankan untuk mengurutkan dengan field unik yang stabil bersama dengan score.
Highlight / detail score / token urutan
Alias dasar adalah highlights, scoreDetails, searchSequenceToken. addFieldsScoreDetails() juga mengaktifkan detail skor dari opsi Pencarian.
Paging / token urutan / jumlah
count().execute()
Jumlah pipeline akhir yang mencerminkan fields(...) dan ambang skor pasca-pencarian.
count().executeSearchMeta()
Jumlah metadata $searchMeta. Mendukung SearchCountType.TOTAL/LOWER_BOUND dan tidak menjalankan $match pasca-pencarian.
existsQuery().execute()
Memeriksa apakah hasil pipeline Pencarian lebih dari satu.
Ekstensi Driver-native
stage(Bson) masuk setelah $search dan tidak diterapkan pada pipeline jumlah metadata $searchMeta dari executeSearchMeta(). Jika fitur Driver baru ditambahkan sebelum API kenyamanan DSL, gunakan operator, driverOptions, stage, SortSpec.driver, customizeAggregation terlebih dahulu.