浏览:http://127.0.0.1:9200/wham/_search
给我:
{
"error": "IndexMissingException[[wham] missing]",
"status": 404
}
我根据这些文件设置了所有内容:
最后一个是目前最有帮助的。
很遗憾,我通过卷曲使用了两个不同的“设置”查询来创建我的河流:
curl -XPUT 'localhost:9200/_river/wham/_meta' -d '{
"type": "jdbc",
"jdbc": {
"url": "jdbc:postgresql://localhost:5432/testdb",
"user": "postgres",
"password": "passywordu",
"index": "source",
"type": "wham",
"sql": "select * from testtable;"
}
}'
然后我尝试过这是上面最后一个链接的修改版本。
curl -XPUT 'localhost:9200/_river/wham/_meta' -d '{
"type": "jdbc",
"jdbc": {
"strategy": "simple",
"poll": "5s",
"scale": 0,
"autocommit": false,
"fetchsize": 10,
"max_rows": 0,
"max_retries": 3,
"max_retries_wait": "10s",
"url": "jdbc:postgresql://localhost:5432/testdb",
"user": "postgres",
"password": "passywordu",
"sql": "select * from testtable",
"index": "wham"
}
}'
我目前正在使用最后一个卷发,http://127.0.0.1:9200/_river/wham/_status
给了我这个:
{
"_index": "_river",
"_type": "wham",
"_id": "_status",
"_version": 4,
"found": true,
"_source": {
"node": {
"id": "v1DmcsEOSbKfEbjRdwLYOg",
"name": "Miles Warren",
"transport_address": "inet[/192.168.43.211:9300]"
}
}
}
所以河流在那里,但我没有看到任何查询到达我的postgresql数据库引擎。我已经相应地设置了:
su - postgres
initdb --locale en_US.UTF-8 -E UTF8 -D '/tmp/testdb'
postgres -D /tmp/testdb
createdb testdb
psql -d testdb
CREATE TABLE testtable (
source varchar(20) NOT NULL,
destination varchar(20) NOT NULL,
service int, NOT NULL
);
INSERT INTO testtable VALUES('192.168.0.10', '192.168.0.1', 80)
INSERT INTO testtable VALUES('192.168.0.11', '192.168.0.2', 21)
我可以在默认端口查询数据库,用户名和密码运行正常
我哪里出错了?我是否误解了elasticsearch或者我不应该/wham/_search
并且从提到的SQL查询中获取所有结果?
答案 0 :(得分:5)
我认为你对查询感到困惑
查询1)
curl -XPUT 'localhost:9200/_river/wham/_meta' -d '{
"type" : "jdbc",
"jdbc" : {
"url" : "jdbc:postgresql://localhost:5432/testdb",
"user" : "postgres",
"password" : "passywordu",
"index" : "source",
"type" : "wham",
"sql" : "select * from testtable;"
}
}'
使用上述查询时
您创建名为" 来源"的索引。因为你创建了一个索引类型的wham。 所以在执行上面的 curl 之后。您需要使用以下格式查询数据
http://127.0.0.1:9200/source/wham/_search
它意味着在索引"源"内搜索数据并键入" wham"。
查询2)
curl -XPUT 'localhost:9200/_river/wham/_meta' -d '{
"type" : "jdbc",
"jdbc" : {
"strategy" : "simple",
"poll" : "5s",
"scale" : 0,
"autocommit" : false,
"fetchsize" : 10,
"max_rows" : 0,
"max_retries" : 3,
"max_retries_wait" : "10s",
"url" : "jdbc:postgresql://localhost:5432/testdb",
"user" : "postgres",
"password" : "passywordu",
"sql" : "select * from testtable",
"type": "typename", //add the type of documents to be indexed[like tables in RDBMS]
"index" : "wham"
}
}'
使用上述查询时
您创建一个名为" wham "的索引。因为你创建了一个索引类型的wham。 所以在执行上面的 curl 之后。您需要使用以下格式查询数据
http://127.0.0.1:9200/wham/typename/_search [or]
http://127.0.0.1:9200/wham/_search
它意味着在索引内搜索数据" wham"和indextype" typename"。
在尝试上面之前curl.delete _river索引并尝试。如果数据不重要清除数据文件夹并尝试..!
希望它有帮助..!