2016-01-02 70 views
0

將Jhipster與Postgresql配合使用,我創建了一個實體「Customer」。當我使用Angular UI或POST向API添加數據時,我可以使用UI上的搜索表單搜索這些數據。如何使用API​​創建Elasticsearch實體(jhipster)

但是,當我直接在數據庫中插入數據時,即使應用程序重新啓動後也無法搜索數據。搜索仍然可以(僅)通過UI添加的數據。

我是elasticsearch的新手,不知道在後端插入數據並將其提供給elasticsearch之間是否存在缺失步驟。請幫助,如果有需要配置的東西讓elasticsearch在應用程序啓動過程中從數據庫中提取數據。

我的應用dev.yml摘錄春天數據elasticsearch:

data: 
    elasticsearch: 
     cluster-name: 
     cluster-nodes: 
     properties: 
      path: 
       logs: target/elasticsearch/log 
       data: target/elasticsearch/data 
+0

請解釋一下您用JHipster配置Elasticsearch的過程。你的'application.yml'文件是怎麼樣的? – Val

+0

@Val,我沒有改變與搜索相關的application.yml中的任何配置。我在上面的原始問題中在yml文件中添加了elasticsearch屬性。 – user1501

回答

2

Elasticsearch本質上是一個數據存儲這就是爲什麼JHipster保存到搜索庫,同時作爲常規JPA庫。沒有內置的重新索引功能可以在API之外對其進行更改。

我寫了一個模塊,它將生成重新索引所有實體的服務。

https://github.com/geraldhumphries/generator-jhipster-elasticsearch-reindexer

+0

事實確實如此。我用於我的用例的一個簡單的解決方法是使用存儲庫來提取數據庫中的對象並將它們保存到搜索存儲庫。添加了我在另外的評論中所做的。 – user1501

+0

是的,這就是我的模塊產生的服務。我將它編碼爲我自己的項目,並在看到此問題後決定將其作爲模塊創建。如果您有任何建議,請打開問題。 – geraldhumphries

+0

類似於列表 custs = customerRepository.findAll();然後對於每個cust,customerSearchRepository.save(cust)。 – user1501

相關問題