2015-10-01 98 views
0

我使用彈性搜索和FOSElasticaBundle,當我在MongoDB數據庫中添加一個新對象時,彈性偵聽器觸發並建立索引。FosElasticaBundle和競爭條件

我的問題是,當我添加新的對象和頁面,你可以看到所有的對象刷新,有時,Elastic尚未編入索引,新的對象沒有顯示在列表中。

如果我睡了兩秒鐘或者忙着等待,直到對象被編入索引,它才起作用,但我正在尋找更智能的解決方案。

我試着禁用偵聽器並強制索引與ObjectPersister ::: insertOne($對象),但我有同樣的問題了。

禰彈性的配置是:

fos_elastica: 
    serializer: ~ 
    default_manager: mongodb 
    clients: 
    default: { host: "%elastica_host%", port: "%elastica_port%", logger: false } 
    indexes: 
    filter: 
     finder: ~ 
     client: default 
     index_name: filter_%platform_prefix%_%kernel.environment% 
     types: 
     request: 
      serializer: 
      groups: [filter] 
      persistence: 
      elastica_to_model_transformer: 
       ignore_missing: true 
      identifier: "token" 
      driver: mongodb 
      model: Src\MyBundle\Document\Request 
      repository: Src\MyBundle\Repository\RequestFilterRepository 
      finder: ~ 
      provider: 
       query_builder_method: createElasticaQueryBuilder 

感謝和問候。

回答