Saat ini saya mencoba untuk memigrasi aplikasi berbasis solr ke elasticsearch.
Saya punya permintaan lucene ini
((
name:(+foo +bar)
OR info:(+foo +bar)
)) AND state:(1) AND (has_image:(0) OR has_image:(1)^100)
Sejauh yang saya mengerti ini adalah kombinasi dari klausa HARUS dikombinasikan dengan boolean ATAU:
"Dapatkan semua dokumen yang berisi (foo DAN bilah di nama) ATAU (foo DAN bilah di info). Setelah itu hasil filter dengan kondisi kondisi = 1 dan meningkatkan dokumen yang memiliki gambar."
Saya telah mencoba menggunakan permintaan bool dengan HARUS tetapi saya gagal untuk mendapatkan boolean ATAU menjadi harus klausa. Inilah yang saya miliki:
GET /test/object/_search
{
"from": 0,
"size": 20,
"sort": {
"_score": "desc"
},
"query": {
"bool": {
"must": [
{
"match": {
"name": "foo"
}
},
{
"match": {
"name": "bar"
}
}
],
"must_not": [],
"should": [
{
"match": {
"has_image": {
"query": 1,
"boost": 100
}
}
}
]
}
}
}
Seperti yang Anda lihat, HARUS kondisi untuk "info" tidak ada.
Adakah yang punya solusi?
Terima kasih banyak.
** PEMBARUAN **
Saya telah memperbarui kueri elasticsearch dan menyingkirkan skor fungsi itu. Masalah basis saya masih ada.