Nếu tôi có một văn bản như thế này:Có cách nào không trả lại mảng khi chỉ định các trường trả về trong truy vấn Elasticsearch không?
[
{
"model": "iPhone",
"brand": "Apple"
},
{
"model": "Nexus 5",
"brand": "Google"
}
]
Và đó tôi thực hiện một truy vấn mà chỉ trả về lĩnh vực model
trong một truy vấn, như thế này:
{
"fields": ["model"],
"query": {
"term": {
"brand": "apple"
}
}
}
Sau đó, từng lĩnh vực tài liệu được trả lại trong vòng một mảng như thế này:
{ "model": ["iPhone"] }
thay vì
{ "model": "iPhone" }
Làm cách nào để tránh điều đó và nhận các trường có định dạng giống như khi tùy chọn truy vấn fields
không được xác định?
10 upvotes nếu tôi có thể – tyler
@tyler Haha, tôi rất vui vì nó đã giúp bạn! –
Không, bạn xứng đáng không có upvotes, bởi vì câu trả lời của bạn là gây hiểu nhầm - sử dụng tham số Fields hiệu quả hơn rất nhiều so với sử dụng _souce (nó tiết kiệm đĩa IO và CPU vì nó không phải phân tích cú pháp _source). Tôi thực sự muốn biết cách trả về các trường tài liệu bằng cách sử dụng Định nghĩa trường theo cùng định dạng mà chúng được cung cấp khi lập chỉ mục. Nó có thể tiết kiệm cho tôi một sự lặp lại toàn bộ (có thể là quá nhiều tài liệu) chỉ để loại bỏ các mảng đó ... –