

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
<a name="searching-compound-queries"></a>

Anda dapat menggunakan parser kueri terstruktur untuk menggabungkan ekspresi kecocokan menggunakan Boolean`and`,`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 gabungan 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.](http://www.w3schools.com/tags/ref_urlencode.asp)

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

```
(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 akan mencari semua `text` dan `text-array` bidang untuk istilah *bintang*, dan tidak termasuk 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 terjadi 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.

Selain`and`,, dan `or``not`, sintaks pencarian CloudSearch terstruktur Amazon mendukung beberapa operator khusus:
+ `matchall`—Cocokkan setiap dokumen di domain. Sintaks:`matchall`.
+ `near`—Mendukung kueri frase ceroboh. `distance`Nilai 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](searching-text.md#searching-text-phrases) 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 penelusuran frasa, lihat[Mencari Frase](searching-text.md#searching-text-phrases). Sintaks:`(phrase field=FIELD boost=N 'STRING')`.
+ `prefix`—Mencari bidang teks, teks-array, literal, atau literal-array 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](searching-text.md#searching-text-prefixes) .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, lihat[Mencari Rentang Nilai](searching-ranges.md). 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, lihat[Sintaks Pencarian Terstruktur](search-api.md#structured-search-syntax). 