ขณะนี้ฉันกำลังพยายามโยกย้ายแอปพลิเคชันที่ใช้ solr ไปยัง ElasticSearch
ฉันมีคำถามลูซีนนี้
((
name:(+foo +bar)
OR info:(+foo +bar)
)) AND state:(1) AND (has_image:(0) OR has_image:(1)^100)
เท่าที่ฉันเข้าใจนี่คือการรวมกันของข้อต้องรวมกับบูลีนหรือ:
"รับเอกสารทั้งหมดที่มี (foo AND bar ในชื่อ) หรือ (foo AND bar in info) หลังจากนั้นกรองผลลัพธ์ตามเงื่อนไข state = 1 และเพิ่มเอกสารที่มีรูปภาพ"
ฉันพยายามใช้คำสั่งบูลด้วยต้อง แต่ฉันไม่สามารถรับบูลีนหรือต้องมีคำสั่ง นี่คือสิ่งที่ฉันมี:
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
}
}
}
]
}
}
}
อย่างที่คุณเห็นต้องไม่มีเงื่อนไขสำหรับ "ข้อมูล"
ไม่มีใครมีทางออกหรือไม่?
ขอบคุณมาก.
** อัพเดท **
ฉันได้อัปเดตการสืบค้น ElasticSearch แล้วและลบคะแนนฟังก์ชันนั้น ปัญหาพื้นฐานของฉันยังคงมีอยู่