Tôi hiện đang cố gắng chuyển một ứng dụng dựa trên solr sang elaticsearch.
Tôi có truy vấn lucene này
((
name:(+foo +bar)
OR info:(+foo +bar)
)) AND state:(1) AND (has_image:(0) OR has_image:(1)^100)
Theo tôi hiểu thì đây là sự kết hợp của các mệnh đề PHẢI kết hợp với boolean HOẶC:
"Nhận tất cả các tài liệu có chứa (tên foo AND trong tên) HOẶC (thanh foo AND trong thông tin). Sau đó, bộ lọc kết quả theo trạng thái điều kiện = 1 và tăng tài liệu có hình ảnh."
Tôi đã cố gắng sử dụng truy vấn bool với PHẢI nhưng tôi không nhận được boolean HOẶC các mệnh đề phải. Đây là những gì tôi có:
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
}
}
}
]
}
}
}
Như bạn có thể thấy, PHẢI điều kiện cho "thông tin" bị thiếu.
Có ai có giải pháp không?
Cảm ơn bạn rất nhiều.
** CẬP NHẬT **
Tôi đã cập nhật truy vấn elaticsearch của mình và thoát khỏi điểm số chức năng đó. Vấn đề cơ sở của tôi vẫn tồn tại.