2017-08-02 20 views
10

Tôi đang cố gắng thiết lập một dự án hiện có bằng cách sử dụng elasticsearch và ruby-on-rails. Tôi có thể lấy dự án và chạy tuy nhiên elasticsearch truy vấn trở lại thông báo lỗi khác nhau đối với tôi và không ai trong số đồng nghiệp của tôi:Tìm kiếm đàn hồi - Truy vấn không đúng định dạng (RoR)

[400] {"error":{"root_cause":[{"type":"parsing_exception","reason":"[and] query malformed, no start_object after query name","line":1,"col":896}],"type":"parsing_exception","reason":"[and] query malformed, no start_object after query name","line":1,"col":896},"status":400} 

Điều này rõ ràng dẫn tôi tin nó là cái gì để làm với thiết lập của tôi. Tôi đã cài đặt cùng một phiên bản của chúng (2.4), tuy nhiên ngay cả lệnh thiết lập đã được cung cấp với dự án:

rake environment elasticsearch:import:all DIR=app/models FORCE=y 

mang đến cho tôi một lỗi hết thời gian chờ. Tôi đã kiểm tra và dịch vụ đang chạy. Bất kỳ sự giúp đỡ nào về những gì có thể sai với thiết lập của tôi sẽ được đánh giá rất cao khi tôi đang ở trong một kết thúc chết trong 2 ngày về điều này.

Xin cảm ơn trước.

EDIT: Tôi không nghĩ rằng vấn đề là với các truy vấn chính nó như là làm việc này cho đồng nghiệp của tôi tuy nhiên nó được như sau:

{: date_range => {: from => Mon, 
    01 Aug 2016 00: 00: 00 UTC + 00: 00, 
    : to => Mon, 
    31 Jul 2017 00: 00: 00 UTC + 00: 00 
    }, : activities_only => nil 
}, @pupils = [# < Pupil id: 1042, first_name: "Mark", last_name: "Mekhaiel", date_of_birth: "2017-03-19", level: 0, group_id: 95, created_at: "2017-07-31 08:59:59", updated_at: "2017-07-31 09:48:27", username: "m.mekhaiel1", picture: 0, color: 0, archived: false, sub_group_id: nil, score: 20, deleted_at: nil > ], @search = # < PupilCreditSearch: 0x007fc961801308 @interval = : month, @page = 1, @per = 25, @pupil_id = [1042], @date_range = {: from => Mon, 
    01 Aug 2016 00: 00: 00 UTC + 00: 00, 
    : to => Mon, 
    31 Jul 2017 00: 00: 00 UTC + 00: 00 
}, @queries = [# < Search::Query: 0x007fc964791bb8 @query = nil, @fields = [], @type = : multi_match, @options = {: fields => [], 
    : type => : cross_fields 
} > ], @filters = [# < Search::Filter: 0x007fc964756db0 @name = : pupil_id, @value = [1042], @type = : terms, @options = {} > ], @aggregations = {: years_created => # < Search::Aggregation: 0x007fc9647a32f0 @type = : date_histogram, 
    @field = : created_at, 
    @options = {: field => : created_at, 
    : type => : date_histogram, 
    : params => {: interval => : year 
    } 
    } > , 
    : months_created => # < Search::Aggregation: 0x007fc9647a30c0 @type = : date_histogram, 
    @field = : created_at, 
    @options = {: field => : created_at, 
    : type => : date_histogram, 
    : params => {: interval => : month 
    } 
    } > , 
    : date_ranges => # < Search::Aggregation: 0x007fc9647a2800 @type = : date_range, 
    @field = : created_at, 
    @options = {: field => : created_at, 
    : type => : date_range, 
    : params => {: keyed => true, 
     : ranges => [{: from => "now/w", 
     : to => "now+1w/w", 
     : key => : this_week 
     }, {: from => "now/M", 
     : to => "now+1M/M", 
     : key => : this_month 
     }, {: from => "now-1w/w", 
     : to => "now-2w/w", 
     : key => : last_week 
     }, {: from => "now-1M/M", 
     : to => "now-2M/M", 
     : key => : last_month 
     }, {: from => "2016-09-01", 
     : to => "2017-08-31", 
     : key => : academic_year 
     }] 
    } 
    } > , 
    : groups => # < Search::Aggregation: 0x007fc9647a2260 @type = : terms, 
    @field = : pupil_id, 
    @options = {: aggs => {: all_dates => # < Search::Aggregation: 0x007fc9647a22d8 @type = : date_histogram, 
     @field = : created_at, 
     @options = {: params => {: interval => : month 
     }, 
     : aggs => {: total_points => # < Search::Aggregation: 0x007fc9647a2440 @type = : sum, 
      @field = : points, 
      @options = {} > , 
      : running_total => # < Search::Aggregation: 0x007fc9647a2350 @type = : cumulative_sum, 
      @field = nil, 
      @options = {: params => {: buckets_path => "total_points" 
      } 
      } > 
     } 
     } > 
    } 
    } > , 
    : options => # < Search::Aggregation: 0x007fc9647a1518 @type = : global, 
    @field = nil, 
    @options = {: aggs => {: filtered => # < Search::Aggregation: 0x007fc9647a1590 @type = : filter, 
     @field = nil, 
     @options = {: params => {: and => [{: range => {: created_at => {: gte => Mon, 
       01 Aug 2016 00: 00: 00 UTC + 00: 00, 
       : lt => Mon, 
       31 Jul 2017 00: 00: 00 UTC + 00: 00 
       } 
      } 
      }, {: terms => {: pupil_id => [1042] 
      } 
      }] 
     }, 
     : aggs => {: categories => # < Search::Aggregation: 0x007fc9647a1b80 @type = : terms, 
      @field = "category", 
      @options = {: ignore => true 
      } > , 
      : topic_ids => # < Search::Aggregation: 0x007fc9647a19a0 @type = : terms, 
      @field = "topic_id", 
      @options = {: ignore => true 
      } > , 
      : learning_objective_ids => # < Search::Aggregation: 0x007fc9647a17c0 @type = : terms, 
      @field = "learning_objective_id", 
      @options = {: ignore => true 
      } > , 
      : completed_activities => # < Search::Aggregation: 0x007fc9647a1608 @type = : terms, 
      @field = : pupil_id, 
      @options = {: aggs => {: activities => # < Search::Aggregation: 0x007fc9647a1680 @type = : filter, 
       @field = nil, 
       @options = {: params => {: and => [{: terms => {: category => [0, 1, 2, 3] 
        } 
        }] 
       } 
       } > 
      } 
      } > 
     } 
     } > 
    } 
    } > 
}, @request = # < Search::Request: 0x007fc964753548 @params = {: query => {: bool => {: must => [{: match_all => {} 
     }], 
     : filter => [{: terms => {: pupil_id => [1042] 
     } 
     }] 
    } 
    }, 
    : aggs => {: years_created => {: date_histogram => {: field => : created_at, 
     : interval => : year 
     } 
    }, 
    : months_created => {: date_histogram => {: field => : created_at, 
     : interval => : month 
     } 
    }, 
    : date_ranges => {: date_range => {: field => : created_at, 
     : keyed => true, 
     : ranges => [{: from => "now/w", 
      : to => "now+1w/w", 
      : key => : this_week 
     }, {: from => "now/M", 
      : to => "now+1M/M", 
      : key => : this_month 
     }, {: from => "now-1w/w", 
      : to => "now-2w/w", 
      : key => : last_week 
     }, {: from => "now-1M/M", 
      : to => "now-2M/M", 
      : key => : last_month 
     }, {: from => "2016-09-01", 
      : to => "2017-08-31", 
      : key => : academic_year 
     }] 
     } 
    }, 
    : groups => {: terms => {: field => : pupil_id 
     }, 
     : aggs => {: all_dates => {: date_histogram => {: field => : created_at, 
      : interval => : month 
      }, 
      : aggs => {: total_points => {: sum => {: field => : points 
       } 
      }, 
      : running_total => {: cumulative_sum => {: buckets_path => "total_points" 
       } 
      } 
      } 
     } 
     } 
    }, 
    : options => {: global => {}, 
     : aggs => {: filtered => {: filter => {: and => [{: range => {: created_at => {: gte => Mon, 
        01 Aug 2016 00: 00: 00 UTC + 00: 00, 
        : lt => Mon, 
        31 Jul 2017 00: 00: 00 UTC + 00: 00 
       } 
       } 
      }, {: terms => {: pupil_id => [1042] 
       } 
      }] 
      }, 
      : aggs => {: categories => {: terms => {: field => "category" 
       } 
      }, 
      : topic_ids => {: terms => {: field => "topic_id" 
       } 
      }, 
      : learning_objective_ids => {: terms => {: field => "learning_objective_id" 
       } 
      }, 
      : completed_activities => {: terms => {: field => : pupil_id 
       }, 
       : aggs => {: activities => {: filter => {: and => [{: terms => {: category => [0, 1, 2, 3] 
         } 
        }] 
        } 
       } 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
} >> , @options = # < ReportOptions: 0x007fc96b663258 @search = # < PupilCreditSearch: 0x007fc961801308 @interval = : month, @page = 1, @per = 25, @pupil_id = [1042], @date_range = {: from => Mon, 
    01 Aug 2016 00: 00: 00 UTC + 00: 00, 
    : to => Mon, 
    31 Jul 2017 00: 00: 00 UTC + 00: 00 
}, @queries = [# < Search::Query: 0x007fc964791bb8 @query = nil, @fields = [], @type = : multi_match, @options = {: fields => [], 
    : type => : cross_fields 
} > ], @filters = [# < Search::Filter: 0x007fc964756db0 @name = : pupil_id, @value = [1042], @type = : terms, @options = {} > ], @aggregations = {: years_created => # < Search::Aggregation: 0x007fc9647a32f0 @type = : date_histogram, 
    @field = : created_at, 
    @options = {: field => : created_at, 
    : type => : date_histogram, 
    : params => {: interval => : year 
    } 
    } > , 
    : months_created => # < Search::Aggregation: 0x007fc9647a30c0 @type = : date_histogram, 
    @field = : created_at, 
    @options = {: field => : created_at, 
    : type => : date_histogram, 
    : params => {: interval => : month 
    } 
    } > , 
    : date_ranges => # < Search::Aggregation: 0x007fc9647a2800 @type = : date_range, 
    @field = : created_at, 
    @options = {: field => : created_at, 
    : type => : date_range, 
    : params => {: keyed => true, 
     : ranges => [{: from => "now/w", 
     : to => "now+1w/w", 
     : key => : this_week 
     }, {: from => "now/M", 
     : to => "now+1M/M", 
     : key => : this_month 
     }, {: from => "now-1w/w", 
     : to => "now-2w/w", 
     : key => : last_week 
     }, {: from => "now-1M/M", 
     : to => "now-2M/M", 
     : key => : last_month 
     }, {: from => "2016-09-01", 
     : to => "2017-08-31", 
     : key => : academic_year 
     }] 
    } 
    } > , 
    : groups => # < Search::Aggregation: 0x007fc9647a2260 @type = : terms, 
    @field = : pupil_id, 
    @options = {: aggs => {: all_dates => # < Search::Aggregation: 0x007fc9647a22d8 @type = : date_histogram, 
     @field = : created_at, 
     @options = {: params => {: interval => : month 
     }, 
     : aggs => {: total_points => # < Search::Aggregation: 0x007fc9647a2440 @type = : sum, 
      @field = : points, 
      @options = {} > , 
      : running_total => # < Search::Aggregation: 0x007fc9647a2350 @type = : cumulative_sum, 
      @field = nil, 
      @options = {: params => {: buckets_path => "total_points" 
      } 
      } > 
     } 
     } > 
    } 
    } > , 
    : options => # < Search::Aggregation: 0x007fc9647a1518 @type = : global, 
    @field = nil, 
    @options = {: aggs => {: filtered => # < Search::Aggregation: 0x007fc9647a1590 @type = : filter, 
     @field = nil, 
     @options = {: params => {: and => [{: range => {: created_at => {: gte => Mon, 
       01 Aug 2016 00: 00: 00 UTC + 00: 00, 
       : lt => Mon, 
       31 Jul 2017 00: 00: 00 UTC + 00: 00 
       } 
      } 
      }, {: terms => {: pupil_id => [1042] 
      } 
      }] 
     }, 
     : aggs => {: categories => # < Search::Aggregation: 0x007fc9647a1b80 @type = : terms, 
      @field = "category", 
      @options = {: ignore => true 
      } > , 
      : topic_ids => # < Search::Aggregation: 0x007fc9647a19a0 @type = : terms, 
      @field = "topic_id", 
      @options = {: ignore => true 
      } > , 
      : learning_objective_ids => # < Search::Aggregation: 0x007fc9647a17c0 @type = : terms, 
      @field = "learning_objective_id", 
      @options = {: ignore => true 
      } > , 
      : completed_activities => # < Search::Aggregation: 0x007fc9647a1608 @type = : terms, 
      @field = : pupil_id, 
      @options = {: aggs => {: activities => # < Search::Aggregation: 0x007fc9647a1680 @type = : filter, 
       @field = nil, 
       @options = {: params => {: and => [{: terms => {: category => [0, 1, 2, 3] 
        } 
        }] 
       } 
       } > 
      } 
      } > 
     } 
     } > 
    } 
    } > 
}, @request = # < Search::Request: 0x007fc964753548 @params = {: query => {: bool => {: must => [{: match_all => {} 
     }], 
     : filter => [{: terms => {: pupil_id => [1042] 
     } 
     }] 
    } 
    }, 
    : aggs => {: years_created => {: date_histogram => {: field => : created_at, 
     : interval => : year 
     } 
    }, 
    : months_created => {: date_histogram => {: field => : created_at, 
     : interval => : month 
     } 
    }, 
    : date_ranges => {: date_range => {: field => : created_at, 
     : keyed => true, 
     : ranges => [{: from => "now/w", 
      : to => "now+1w/w", 
      : key => : this_week 
     }, {: from => "now/M", 
      : to => "now+1M/M", 
      : key => : this_month 
     }, {: from => "now-1w/w", 
      : to => "now-2w/w", 
      : key => : last_week 
     }, {: from => "now-1M/M", 
      : to => "now-2M/M", 
      : key => : last_month 
     }, {: from => "2016-09-01", 
      : to => "2017-08-31", 
      : key => : academic_year 
     }] 
     } 
    }, 
    : groups => {: terms => {: field => : pupil_id 
     }, 
     : aggs => {: all_dates => {: date_histogram => {: field => : created_at, 
      : interval => : month 
      }, 
      : aggs => {: total_points => {: sum => {: field => : points 
       } 
      }, 
      : running_total => {: cumulative_sum => {: buckets_path => "total_points" 
       } 
      } 
      } 
     } 
     } 
    }, 
    : options => {: global => {}, 
     : aggs => {: filtered => {: filter => {: and => [{: range => {: created_at => {: gte => Mon, 
        01 Aug 2016 00: 00: 00 UTC + 00: 00, 
        : lt => Mon, 
        31 Jul 2017 00: 00: 00 UTC + 00: 00 
       } 
       } 
      }, {: terms => {: pupil_id => [1042] 
       } 
      }] 
      }, 
      : aggs => {: categories => {: terms => {: field => "category" 
       } 
      }, 
      : topic_ids => {: terms => {: field => "topic_id" 
       } 
      }, 
      : learning_objective_ids => {: terms => {: field => "learning_objective_id" 
       } 
      }, 
      : completed_activities => {: terms => {: field => : pupil_id 
       }, 
       : aggs => {: activities => {: filter => {: and => [{: terms => {: category => [0, 1, 2, 3] 
         } 
        }] 
        } 
       } 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
} 
+0

bạn có sử dụng đá quý [elasticsearch-ruby ] (https://github.com/elastic/elasticsearch-ruby) không? –

+2

Bạn có thể đăng truy vấn tại đây bạn đang gửi không? – sourabh1024

+0

đăng truy vấn và tài liệu mẫu bạn đang cố gắng truy vấn và xuất ra mà bạn đang cố gắng đạt được sẽ giúp – user93

Trả lời

0

Vấn đề là với một trong những quy tụ, cụ thể là:

:filter => { :and => [...] }

... mà dẫn tôi đến kết luận rằng bạn thực sự có thể chạy elasticsearch 5 và không 2.4, trên máy tính của bạn, bởi vì cú pháp này đã giảm trong phiên bản 5 ủng hộ:

:filter => { :bool => { :must: [...] } }

Xác minh phiên bản elasticsearch với curl localhost:9200 (hoặc máy chủ/cổng thực tế mà ứng dụng của bạn đang kết nối).

Các vấn đề liên quan