我在Windows 7上使用带有angularjs和oracle的elasticsearch。 它的工作更多&更精细(感谢stackoverflower帮助)。我有弹性搜索的问题:我的文档中的元素数量正在增加,我不知道为什么/如何。 我的弹性搜索索引的oracle表包含12010个元素,现在我在弹性文档中有84070个元素(经常由curl _count检查):所以它现在重复数据7次。几天前我重新索引了这个表,但我之前删除了elasticsearch“data”文件夹。
每次重启windows时,数据似乎都会增加。
感谢您的帮助。
这是我安装和索引数据的方式:
我这是第一次这样做:
创建索引
curl -XPOST 'localhost:9200/donnees'
映射:
curl -XPUT 'localhost:9200/donnees/specimens/_mapping' -d '{
"specimens" : {
"_all" : {"enabled" : true},
"_index" : {"enabled" : true},
"_id" : {"index": "not_analyzed", "store" : false},
"properties" : {
"O_OCCURRENCEID" : {"type" : "string", "store" : "no","index": "not_analyzed" } ,
....
"I_INSTITUTIONCODE" : {"type" : "string", "store" : "yes","index": "analyzed" }
}
}}'
查询oracle和索引数据:
curl -XPUT 'localhost:9200/_river/donnees_s/_meta' -d '{
"type" : "jdbc",
"jdbc" : {
"index" : "donnees",
"type" : "specimens",
"url" : "jdbc:oracle:thin:@localhost:1523:recolnat",
"user" : "user",
"password" : "password",
"sql" : "select * from all_specimens_data"
}
}'
(这是正确的吗?如果我用“curl -XPUT'localhost:9200 / donnees / samples / _meta'替换”curl -XPUT'localhost:9200 / _river / donnees_s / _meta'“它不起作用我用来查询)
测试:
curl -XGET 'http://localhost:9200/donnees/specimens/_count?q=*'
=> 12010
curl -XGET 'http://localhost:9200/donnees/specimens/_search?q=P00009359'
=> return data ok
答案 0 :(得分:3)
感谢Konstantin V. Salikhov。
每次elasticsearch服务启动时,都会使用提供给_river的sql查询数据库并获取数据(参见前面的#34;查询oracle和索引数据:")。如果数据没有" _id" column _river无法确定已加载哪些记录,每次都会复制数据。 为了避免重复我编辑我的" all_specimens_data"数据库中的表(实际上是一个避免修改数据库的视图)并重命名" O_OCCURRENCEID" to" _id"," O_OCCURRENCEID"是我的主要密钥UUID。
希望这有助于其他