我浏览了数十篇文章和论坛主题,浏览了官方文档,但找不到答案。据说,这篇文章听起来很有希望,The data to be indexed can generally come from very different sources: SQL databases, plain text files, HTML files但不幸的是,正如它所致力于的所有其他文章和论坛主题一样MySQL。
听到它Sphinx是如此酷,这很奇怪,它可以做到这一点,并且几乎可以用您喜欢的任何数据源来完成您想要的任何事情。但是,这些示例中除数据源以外的所有其他示例在哪里MySQL?Sphinx当您要扫描世界上最简单的数据源-纯文本文件时,仅是一个最小的琐碎的分步示例。假设我已经安装Sphinx并想要(递归)扫描主目录以查找所有包含“ Hello world”的纯文本文件。我应该怎么做才能做到这一点?
先决条件:
Ubuntusudo apt-get install sphinxsearch我有一个表格,test_table其中一个字段id会自动递增.现在我想要的是在运行INSERT语句后立即获取最后一个插入的id .此时我所有的尝试都会导致None(顺便说一句,我在MySQL中得到了相同的行为,只有在SQLite中一切正常).这是一些重现这种意外行为的代码:
>>> import psycopg2
>>> cnx = psycopg2.connect(host="127.0.0.1", dbname="reestr", user="postgres", password="postgres")
>>> cur = cnx.cursor()
>>> cur.execute("INSERT INTO test_table (field_1) VALUES ('hello')")
>>> cur.execute("INSERT INTO test_table (field_1) VALUES ('hello')")
>>> cur.execute("SELECT CURRVAL(pg_get_serial_sequence('test_table','id'))")
>>> res = cur.fetchone()
>>> res
(None,)
>>> cur.execute("SELECT id, field_1 FROM test_table")
>>> res = cur.fetchall()
>>> res
[(1, 'hello'), (2, 'hello')]
Run Code Online (Sandbox Code Playgroud)
我们清楚地看到,该id列自动增量,但由于一些疯狂的原因,SELECT CURRVAL(pg_get_serial_sequence('test_table','id'))没有返回任何东西.这有什么问题?顺便说一下,我还尝试在一个事务中显式运行这些查询,并得到完全相同的结果.
似乎不久前OL2有一种很好的方式来设置图层样式SLD,现在似乎不可能做类似的事情OL3.至少,我在网络上找不到任何例子,在官方OL3文档中我甚至找不到任何一个参考SLD.那么,为什么这样以及现实世界应用程序中的人如何在SLD不再支持格式的情况下存储/保存样式?
我创建了一个小功能和小触发器。当我运行最简单的DELETE查询时,我只在控制台中看到一条通知和一条上下文消息(没有警告也没有错误消息),但是这个DELETE查询仍然没有任何影响(记录保留在表中并且没有被删除)。函数和触发器如下所示:
CREATE FUNCTION trigger_layers_before_del () RETURNS trigger
AS $$
DECLARE
table_name text := (SELECT concat ('layer_', OLD.id::text, '_'));
BEGIN
EXECUTE '
DROP TABLE IF EXISTS ' || quote_ident(table_name) || ' CASCADE
';
RETURN NULL;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER tr_layers_del_befor
BEFORE DELETE ON layers FOR EACH ROW
EXECUTE PROCEDURE trigger_layers_before_del();
Run Code Online (Sandbox Code Playgroud)
这是DELETE命令的样子:
DELETE FROM layers where id = 31
Run Code Online (Sandbox Code Playgroud)
所以,如果我运行:
DELETE FROM layers WHERE id = 31;
SELECT * FROM layers WHERE id = …Run Code Online (Sandbox Code Playgroud) 我来自Python,Ruby和PHP世界,我尝试遵循的一种技术是从我的代码中删除参数顺序依赖项.这是在Ruby中实现的这种技术的简短演示:
class Gear
attr_reader :chainring, :cog, :wheel
def initialize(args)
@chainring = args[:chainring]
@cog = args[:cog]
@wheel = args[:wheel]
end
...
end
Gear.new(
:chainring => 52,
:cog => 11,
:wheel => Wheel.new(26, 1.5)).gear_inches
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,客户端代码不需要知道初始化Gear实例的参数顺序,我喜欢这样.但现在我只是想知道如何在Java这样的静态类型语言中实现同样的东西,我也想知道人们是否试图在这种语言中使用这些技术.如果有人可以分享他们的经验并展示一些演示代码(让它用Java,C#等),那就太好了.
在MySQL我有一个很好的方法来抑制密钥检查,我只是这样做:
SET FOREIGN_KEY_CHECKS = 0;
Run Code Online (Sandbox Code Playgroud)
之后我可以轻松放下任何桌子.我想,Postgresql如果我跑,我也可以这样做:
SET CONSTRAINTS ALL DEFERRED;
Run Code Online (Sandbox Code Playgroud)
但问题是,当我尝试删除一些表后,我得到一个错误列表,说一些表依赖于另一个表blablabla.那么,我做错了什么,我该如何解决呢?谢谢!
我在 stackoverflow 上阅读了几十个线程,但没有一个有帮助。所以,这就是我尝试做的:
features.forEach(function(feature){
source.removeFeature(feature);
console.log("removed");
console.log(feature);
});
Run Code Online (Sandbox Code Playgroud)
结果,当我只选择了一项功能时,我会在控制台中看到以下消息:
removed Controller.js:525:8
Object { disposed_: false, onDisposeCallbacks_: undefined, ...}
Run Code Online (Sandbox Code Playgroud)
就我在控制台中看到的而言,一切看起来都不错。但问题是该特征并未从地图中移除。
编辑
现在更有趣了。如果我使用 getArray 将特征转换为数组并执行以下操作:
for(var i=0,len=features.length;i<len;i++){
var feature = features[i];
source.removeFeature(feature);
}
source.clear();
Run Code Online (Sandbox Code Playgroud)
当我有很多功能并且只选择了一个功能时,那么在这种情况下,只有这个选定的功能会保留下来,而所有其余的功能都会被删除。到底他妈发生了什么??
我不太明白如何阅读以下理解,即使我知道它的作用:
>>> matrix=[[1,2,3],[4,5,6],[7,8,9]]
>>> [x for row in matrix for x in row]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
那么,这种理解如何转化为自然语言?我不确定,因为如果我试图将这个表达式分成两部分x for row in matrix,for x in row它们在任务的上下文中都变得毫无意义.
我想要的是非常简单,可以PHP使用一行代码在语言中完成:
file_put_contents('target.txt', iconv('windows-1252', 'utf-8', file_get_contents('source.txt')));
Run Code Online (Sandbox Code Playgroud)
在Python中,我花了一整天时间试图弄清楚如何实现同样的琐碎事情,但无济于事.当我尝试读取或写入文件时,我经常得到UnicodeDecode errors,str has no method decode以及十几个类似的错误.好像我在SO扫描所有线程,但仍然不知道我该怎么做.
我当前的测试配置如下所示:
version: '3.7'
services:
postgres:
image: debezium/postgres
restart: always
ports:
- "5432:5432"
zookeeper:
image: debezium/zookeeper
ports:
- "2181:2181"
- "2888:2888"
- "3888:3888"
kafka:
image: debezium/kafka
restart: always
ports:
- "9092:9092"
links:
- zookeeper
depends_on:
- zookeeper
environment:
- ZOOKEEPER_CONNECT=zookeeper:2181
- KAFKA_GROUP_MIN_SESSION_TIMEOUT_MS=250
connect:
image: debezium/connect
restart: always
ports:
- "8083:8083"
links:
- zookeeper
- postgres
- kafka
depends_on:
- zookeeper
- postgres
- kafka
environment:
- BOOTSTRAP_SERVERS=kafka:9092
- GROUP_ID=1
- CONFIG_STORAGE_TOPIC=my_connect_configs
- OFFSET_STORAGE_TOPIC=my_connect_offsets
- STATUS_STORAGE_TOPIC=my_source_connect_statuses
Run Code Online (Sandbox Code Playgroud)
我像这样使用 docker-compose 运行它:
$ docker-compose up …Run Code Online (Sandbox Code Playgroud) postgresql ×4
python ×3
javascript ×2
openlayers-3 ×2
apache-kafka ×1
c# ×1
debezium ×1
java ×1
plaintext ×1
python-3.x ×1
search ×1
sphinx ×1