在PostgreSQL Ecto Elixir中进行全文字符串搜索

时间:2016-11-17 06:39:14

标签: postgresql elixir ecto

我的问题更多是关于数据库,但它包括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

但它超时了。

我们如何处理数百万条记录的全文搜索?

0 个答案:

没有答案