Elasticsearch - 在排序的nested_filte中使用bool查询

时间:2016-06-08 08:31:24

标签: elasticsearch elasticsearch-2.0 elasticsearch-query

我有一个查询,过滤掉数量为5的特殊价格的产品。现在我想订购按价格降价的产品。由于每件的价格高于一件,因此不应考虑。我读过我可以使用nested_filter进行排序过滤,但是当只是复制粘贴查询时它就无法正常工作。 下面是一个简短的版本,其中只显示了最重要的查询部分。

public class Main extends Application {

    Canvas canvas;

    @Override
    public void start(Stage primaryStage) {
        try {
            BorderPane root = new BorderPane();
            Scene scene = new Scene(root,400,400);

            canvas = new Canvas();

            Pane pane = new Pane();
            pane.getChildren().add(canvas);
            canvas.widthProperty().bind(pane.widthProperty());
            canvas.heightProperty().bind(pane.heightProperty());
            root.setCenter(pane);


            Thread thread = new Thread(new Runnable() {

                private ObjectProperty<Image> imageToBeDrawn = new SimpleObjectProperty<Image>(new Image(getClass().getResource("a.jpg").toExternalForm()));

                @Override
                public void run() {

                    // Option 2: Listen to the width and height property change of the canvas and redraw the image
                    canvas.widthProperty().addListener(event -> addImageToCanvas(imageToBeDrawn.get()));
                    canvas.heightProperty().addListener(event -> addImageToCanvas(imageToBeDrawn.get()));

                    imageToBeDrawn.addListener(event -> addImageToCanvas(imageToBeDrawn.get()));

                    while(true){

                        Random rand = new Random();
                        if(rand.nextBoolean())
                            imageToBeDrawn.set(new Image(getClass().getResource("a.jpg").toExternalForm()));
                        else
                            imageToBeDrawn.set(new Image(getClass().getResource("b.jpg").toExternalForm()));

                        try {
                            Thread.sleep(1000);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            });

            thread.setDaemon(true);
            thread.start();

            primaryStage.setScene(scene);

            // Option 2: start the Thread only when the stage is showing
//          primaryStage.showingProperty().addListener(new ChangeListener<Boolean>() {
//
//              @Override
//              public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
//                  if(newValue)
//                      thread.start();
//                  
//              }
//          });

            primaryStage.show();



        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    void addImageToCanvas(Image img){
        Platform.runLater(new Runnable(){

        @Override
        public void run() {

            GraphicsContext gc = canvas.getGraphicsContext2D();
            gc.drawImage(img, 0, 0, canvas.getWidth(), canvas.getHeight());  
        }});
     }

    public static void main(String[] args) {
        launch(args);
    }
}

0 个答案:

没有答案