我的问题更多是关于数据库,但它包括Elixir和Ecto,这就是为什么要发布它而不是StackExchange上的DB论坛。
我们的PG数据库中有一个Camera Actitvies表。
有像这样的列
id serial NOT NULL,
camera_id integer NOT NULL,
access_token_id integer,
action text NOT NULL,
done_at timestamp with time zone NOT NULL,
ip inet,
extra json,
camera_exid text,
name text
我们有2个报告显示此表中的数据..在第一个我们得到camera_id
的数据,而且我们有一个索引作为
CREATE UNIQUE INDEX camera_activities_camera_id_done_at_index
ON camera_activities
USING btree
(camera_id, done_at);
在那份报告中,一切正常。但另一方面。我们将根据提交的name
获得结果。
我在做什么,
def for_a_user(full_name, from, to, types) do
CameraActivity
|> where(name: ^full_name)
|> where([c], c.done_at >= ^from and c.done_at <= ^to)
|> with_types_if_specified(types)
|> order_by([c], desc: c.done_at)
|> SnapshotRepo.all
end
但它超时了。
我们如何处理数百万条记录的全文搜索?