R/psql_carf_tokenize.R

Defines functions psql_carf_tokenize

Documented in psql_carf_tokenize

#' Cria um index a partir dos julgados
#'
#' @param con conexão
#' @param tbl tabela
#'
#' @return Nenhum objeto R é retornado
#' @export
#'
#' @examples
#' \dontrun{
#' library(carf)
#' con <- dbx::dbxConnect()
#' dplyr::copy_to(con, "julgados", df)
#' psql_carf_tokenize(con, "julgados")
#' }
psql_carf_tokenize <- function(con, tbl) {
  source <- "inteiro_teor"
  target <- "document_tokens"
  idx <- paste0(tbl,"_idx")
  query <- glue::glue_sql("ALTER TABLE {`tbl`} ADD COLUMN {`target`} TSVECTOR", .con = con)

  res <- DBI::dbSendQuery(con, query)
  DBI::dbClearResult(res)

  query <- glue::glue_sql("UPDATE {`tbl`} SET
                         {`target`} = to_tsvector(coalesce({`source`},''))", .con = con)

  res <- DBI::dbSendQuery(con, query)
  DBI::dbClearResult(res)

  query <- glue::glue_sql("CREATE INDEX {`idx`} ON {`tbl`} USING GIN ({`target`})", .con = con)

  res <- DBI::dbSendQuery(con, query)
  DBI::dbClearResult(res)
}
jjesusfilho/carf documentation built on Nov. 4, 2019, 2:44 p.m.