ruby-on-rails – Elasticsearch和Rails:使用ngram搜索单词的一
发布时间:2020-12-17 02:06:48 所属栏目:百科 来源:网络整理
导读:我想在我的项目中使用Elasticsearch-Gem.据我了解:到现在为止,不再需要轮胎宝石,或者我错了? 在我的项目中,我有一个搜索(obivously),目前适用于一个模型.现在我试图避免使用通配符,因为它们不能很好地扩展,但我似乎无法让ngram-Analyzers正常工作.如果我搜
我想在我的项目中使用Elasticsearch-Gem.据我了解:到现在为止,不再需要轮胎宝石,或者我错了?
在我的项目中,我有一个搜索(obivously),目前适用于一个模型.现在我试图避免使用通配符,因为它们不能很好地扩展,但我似乎无法让ngram-Analyzers正常工作.如果我搜索整个单词,搜索仍然有效,但不适用于部分内容. class Pictures < ActiveRecord::Base include Elasticsearch::Model include Elasticsearch::Model::Callbacks settings :analysis => { :analyzer => { :my_index_analyzer => { :tokenizer => "keyword",:filter => ["lowercase","substring"] },:my_search_analyzer => { :tokenizer => "keyword","substring"] } },:filter => { :substring => { :type => "nGram",:min_gram => 2,:max_gram => 50 } } } do mapping do indexes :title,:properties => { :type => "string",:index_analyzer => 'my_index_analyzer',:search_analyzer => "my_search_analyzer" } 也许有人可以给我一个正确方向的暗示. 解决方法
我放弃了在模型类中定义模式.事实上,它也没有多大意义.
所以这就是我所做的.模式/映射定义db /文件夹和构建它的rake任务. https://gist.github.com/geordee/9313f4867d61ce340a08 在模型中 def as_indexed_json(options={}) self.as_json(only: [:id,:name,:description,:price]) end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |