【发布时间】:2014-10-03 07:30:52
【问题描述】:
我在 Windows 7 上使用带有 angularjs 和 oracle 的 elasticsearch。 它工作得越来越好(感谢stackoverflower的帮助)。我对弹性搜索有疑问:我的文档中的元素数量正在增加,我不知道为什么/如何。 我的由 elasticsearch 索引的 oracle 表包含 12010 个元素,现在我在弹性文档中获得了 84070 个元素(经常由 curl _count 检查):所以它现在复制了 7 次数据。几天前我重新索引了表格,但我之前删除了 elasticsearch“数据”文件夹。
每次我重新启动 Windows 时,数据似乎都会增加。
感谢您的帮助。
这就是我安装和索引我的数据的方式:
我只是第一次这样做:
- 在文件夹中解压弹性文件:D:\work\elasticsearch-1.3.1\
- 安装网页界面:>plugin -install mobz/elasticsearch-head
- 安装 jdbc : >plugin --install jdbc --url http://xbib.org/repository/org/xbib/elasticsearch/plugin/elasticsearch-river-jdbc/1.3.0.0/elasticsearch-river-jdbc-1.3.0.0-plugin.zip
- 将“ojdbc6-11.2.0.3.jar”复制到“D:\work\elasticsearch-1.3.1\plugins\jdbc”
- service.bat 安装
- service.bat 启动
创建索引
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/_river/donnees_s/_meta'”替换为“curl -XPUT 'localhost:9200/donnees/specimens/_meta'”,它将不起作用我用来查询)
测试:
curl -XGET 'http://localhost:9200/donnees/specimens/_count?q=*'
=> 12010
curl -XGET 'http://localhost:9200/donnees/specimens/_search?q=P00009359'
=> return data ok
【问题讨论】:
-
您的选择中不应该有一个“_id”列以正确识别已加载的行吗?
-
“O_OCCURRENCEID”列是我的数据库表中的唯一 ID。你在说映射中的这一行:“_id”:{“index”:“not_analyzed”,“store”:false}?
-
我的意思是
select O_OCCURRENCEID as _id ....blahblah... -
不,我没有,但是当我查询弹性搜索时,弹性添加了一个:pastebin.com/zXNay7sX
-
每次加载数据时都会生成新的_id字段值,所以jdbc River无法确定它已经加载了哪些记录
标签: elasticsearch