Membangun Kueri Senyawa di Amazon CloudSearch - Amazon CloudSearch

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membangun Kueri Senyawa di Amazon CloudSearch

Anda dapat menggunakan parser kueri terstruktur untuk menggabungkan ekspresi kecocokan menggunakan Booleanand,or, dan not operator. Untuk memilih parser kueri terstruktur, Anda menyertakan q.parser=structured dalam kueri Anda. Operator kueri terstruktur ditentukan sebagai operator awalan. Sintaksnya adalah:

  • (and boost=N EXPRESSION1 EXPRESSION2 ... EXPRESSIONn)

  • (or boost=N EXPRESSION1 EXPRESSION2 ... EXPRESSIONn)

  • (not boost=N EXPRESSION)

Misalnya, kueri berikut cocok dengan semua film dalam kumpulan data sampel yang berisi bintang dalam judul, dan Harrison Ford atau William Shatner muncul di actors lapangan, tetapi Zachary Quinto tidak.

(and title:'star' (or actors:'Harrison Ford' actors:'William Shatner')(not actors:'Zachary Quinto'))

Saat menggunakan operator kueri terstruktur, Anda menentukan nama operator, opsi untuk operator, dan kemudian ekspresi kecocokan yang dioperasikan,(OPERATOR OPTIONS EXPRESSION). Ekspresi pencocokan dapat berupa string teks sederhana, atau subklausa dari kueri majemuk Anda. Opsi apa pun harus ditentukan sebelum persyaratan. Misalnya, (and (not field=genres 'Sci-Fi')(or (term field=title boost=2 'star')(term field=plot 'star'))).

Tanda kurung mengontrol urutan evaluasi ekspresi. Ketika ekspresi diapit dalam tanda kurung, ekspresi itu dievaluasi terlebih dahulu, dan kemudian nilai yang dihasilkan digunakan dalam evaluasi sisa kueri majemuk.

penting

Anda harus mengkodekan URL karakter khusus dalam string kueri. Misalnya, Anda harus menyandikan = operator dalam kueri terstruktur sebagai%3D:(term+field%3Dtitle+'star'). Amazon CloudSearch mengembalikan InvalidQueryString kesalahan jika karakter khusus tidak dikodekan URL. Untuk referensi lengkap pengkodean URL, lihat Referensi Pengkodean URL HTML W3C.

Misalnya, kueri berikut mencari title bidang untuk frasa star wars dan mengecualikan kecocokan yang memiliki nilai kurang dari 2000 di year bidang.

(and (phrase field='title' 'star wars') (not (range field=year {,2000})))

Untuk mengirimkan permintaan pencarian ini, Anda perlu menyandikan string kueri dan menentukan parser structured kueri dengan parameter. q.parser

http://search-movies-rr2f34ofg56xneuemujamut52i.us-east-1.cloudsearch. amazonaws.com/2013-01-01/search?q=(and+(phrase+field='title'+'star wars')+(not+(range+field%3Dyear+{,2000})))&q.parser=structured

Sintaks kueri terstruktur memungkinkan Anda untuk menggabungkan pencarian terhadap beberapa bidang. Jika Anda tidak menentukan bidang yang akan dicari, semua text dan text-array bidang akan dicari. Misalnya, kueri berikut mencari semua text dan text-array bidang untuk istilah bintang, dan mengecualikan dokumen yang berisi Zachary Quinto di bidang. actors

(and 'star' (not actors:'Zachary Quinto'))

Anda dapat menentukan boost nilai untuk meningkatkan pentingnya satu ekspresi dalam kueri majemuk dalam kaitannya dengan yang lain. Nilai boost meningkatkan skor dokumen yang cocok. Misalnya, kueri berikut meningkatkan kecocokan untuk istilah bintang jika muncul di title bidang, bukan di description bidang.

(and (range field=year [2013,}) (or (term field=title boost=2 'star') (term field=plot 'star'))

Nilai boost harus lebih besar dari nol.

Selainand,, dan ornot, sintaks pencarian CloudSearch terstruktur Amazon mendukung beberapa operator khusus:

  • matchall—Cocokkan setiap dokumen di domain. Sintaks:matchall.

  • near—Mendukung kueri frase ceroboh. distanceNilai menentukan jumlah maksimum kata yang dapat memisahkan kata-kata dalam frasa; misalnya,(near field='plot' distance=4 'naval mutiny demonstration'). Gunakan near operator untuk mengaktifkan pencocokan ketika istilah yang ditentukan berada dalam jarak dekat, tetapi tidak berdekatan. Untuk informasi selengkapnya tentang pencarian frase ceroboh, lihat. Mencari Frase Sintaks:(near field=FIELD distance=N boost=N 'STRING').

  • phrase—Mencari frasa di text atau text-array bidang; misalnya,. (phrase field="title" 'teenage mutant ninja') Mendukung peningkatan dokumen yang cocok dengan ekspresi. Untuk informasi selengkapnya tentang pencarian frasa, lihatMencari Frase. Sintaks:(phrase field=FIELD boost=N 'STRING').

  • prefix—Mencari bidang teks, teks-array, literal, atau array literal untuk awalan yang ditentukan diikuti oleh nol atau lebih karakter; misalnya,. (prefix field='title' 'wait') Mendukung peningkatan dokumen yang cocok dengan ekspresi. Untuk informasi selengkapnya tentang penelusuran awalan, lihat Mencari Prefiks .Syntax:. (prefix field=FIELD boost=N 'STRING')

  • range—Mencari rentang nilai dalam bidang numerik; misalnya:. (range field=year [2000,2013]) Untuk informasi selengkapnya tentang penelusuran rentang, lihatMencari Rentang Nilai. Sintaks:(range field=FIELD boost=N RANGE).

  • term—Mencari istilah atau nilai individu di bidang apa pun; misalnya:. (and (term field=title 'star')(term field=year 1977)) Sintaks:(term field=FIELD boost=N 'STRING'|VALUE).

Untuk informasi selengkapnya tentang mencari jenis data tertentu, lihat bagian berikut. Untuk informasi selengkapnya tentang sintaks penelusuran terstruktur, lihatSintaks Pencarian Terstruktur.