elasticsearch에서 검색하고 싶습니다. 나는 elasticsearch에 대한 나의 운전자로 mongoosastic을 사용하고 있습니다. 여기서 한 필드에 문자열이 있는지 여부를 검색하고 정확히 일치해야하는지 여부를 한 필드 더 검색하려고합니다. mongoosastic에서 어떻게 할 수 있습니까?elasticsearch에서 검색하는 방법
0
A
답변
1
탄성 검사의 특징은 bool query입니다.
나는 당신이 그 과정에서 갇혀 있는지 모른다. 그러나 나는 그 과정을 설명하려고 노력할 것이다.
모델을 Elasticsearch로 색인화하려면 플러그인을 추가하기 만하면됩니다.
var mongoose = require('mongoose'),
mongoosastic = require('mongoosastic'),
Schema = mongoose.Schema
var User = new Schema({
name: String,
country: String,
age: Number,
email: String,
city: String})
User.plugin(mongoosastic)
그럼 당신은 모델에 ES 검색을 수행 할 수 있지만 먼저 당신은 당신의 쿼리를 포맷합니다. 의 당신이 런던에서 영국에서 살고있는 모든 사용자를 원하지만 가정 해 봅시다, 당신은 30 40 세 사이의 사용자에 맞게 싶습니다
var query = {
"bool" : {
"must" : {
"term" : { "country" : "england" }
},
"must_not" : {
"city" : { "city" : "london" }
},
"should" : {
"range" : {
"age" : { "from" : 30, "to" : 40}
}
}
}
}
당신의 관점에서 검색어와 일치하지 않는 사용자를 얻을 것이다
연령,하지만 ES는 점수 시스템을 사용하여 결과를 정렬합니다.
는 ES를 제공해드립니다 완료하고 결과를 처리하려면
User.search(query, function (err, users) {
if (err) {
//Handle error
}
var results = users.hits.hits;
//work with your hits
}