我正在将postgresql文本搜索发送到我的应用程序中。当我搜索特定项目时,我收到错误。
SELECT COUNT(*)FROM" documents" INNER JOIN(SELECT" documents"。" id" AS pg_search_id,(ts_rank((to_tsvector(' english', 合并("文件"。"标题" ::文字,''))|| to_tsvector('英语&#39 ;, 合并("文件"。"内容" ::文字,''))),(to_tsquery('英文', ''' ' || '咖啡' || ' '')),0))AS等级来自"文件"哪里 ((to_tsvector(' english',coalesce(" documents"。" title" :: text,''))|| to_tsvector('英语',合并("文档"。"内容" ::文字,''))@@ (to_tsquery('英语',''' ||'咖啡' ||''&# 39;'))))) pg_search_documents ON"文件"。" id" = pg_search_documents.pg_search_id
在我的文档模型中
include PgSearch
pg_search_scope :search, :against => [:title, :content],
:using => {tsearch: {dictionary: "english"}}
def self.text_search(query)
if query.present?
search(query)
else
all
end
end
在我的文档控制器中
def load_documents
@documents = documents_scope.all.text_search(params[:query])
end
我的数据库如何在控制台中连线
Document(id:uuid,category_id:uuid,title:string,created_at:datetime,updated_at:datetime,version_id:uuid)
DocumentVersion(id:uuid,document_id:uuid,document_version_id:uuid,user_id:uuid,title:string,content:text,created_at:datetime,updated_at:datetime
它与表连接有关,但我不知道如何解决它。谢谢你的帮助。
答案 0 :(得分:0)
得到它,在我的模型中,我需要通过assosciations范围
$("select[name=customer]").select2({
allowClear : true,
placeholder : "Choose customer",
ajax : {
url : "/search/autocomplete/get_customers",
dataType : 'json',
type : "GET",
quietMillis : 50,
delay : 250,
success: function(){
test();
},
data : function(params) {
return {
filter : params.term
};
},
processResults : function(data) {
return {
results : $.map(data, function(item) {
return {
text : item.name + ' (' + item.customer_code + ')',
id : item.id
}
})
};
},
initSelection : function (element, callback) {
var data = [];
$(element.val()).each(function () {
data.push({id: this, text: this});
});
callback(data);
}
}
});
答案 1 :(得分:0)
通常当Postgres认为某列中的数据本身是一列时,这是因为数据是用双引号引用的......将双引号更改为单引号可以缓解这个问题但是你的代码也有点过了令人费解的复制......
select * from <table> where user_id = "e15bde2-6f4b-4299-9e64-82116c719636";
......会导致这个问题,而:
select * from <table> where user_id = 'e15bde2-6f4b-4299-9e64-82116c719636';
...不会。