我们有一个邮箱模型,它使用另一个邮件应用程序也连接到的辅助数据库.这称为使用
establish_connection :mail_database
Run Code Online (Sandbox Code Playgroud)
现在,我想我可以尝试将它包装在一个if语句中,以便它为测试环境使用不同的连接,但我想知道如何保持这个数据库干净,最好使用我们已经用于'常规'数据库的database_cleaner .
我希望有人可以把我推向正确的方向.
我们正在运行ElasticSearch,并且在搜索包含空格的术语时遇到一些问题.一个具体的例子:有一个名叫JM Bruno的人,但是在搜索时没有返回任何结果.我隐约记得搜索这个确切的术语确实返回了结果,但我现在无法重现.
我尝试在我的tokenizer模式中添加一个空格和"\",没有太多运气.ES设置如下(在Ruby on Rails应用程序中使用Tire gem)
module Search
def self.included base
base.send :include, Tire::Model::Search
base.send :include, Tire::Model::Callbacks
base.class_eval do
settings analysis: {
filter: {
ngram: {
type: 'nGram',
max_gram: 12,
min_gram: 3
},
url_stop: {
type: "stop",
stopwords: %w[http https]
}
},
tokenizer: {
url_email_tokenizer: {
pattern: '[^\w\-\.@]+',
type: 'pattern'
}
},
analyzer: {
url_analyzer: {
tokenizer: "url_email_tokenizer",
filter: %w[url_stop ngram],
type: "custom"
},
name_analyzer: {
tokenizer: 'url_email_tokenizer',
filter: 'ngram',
type: 'custom'
}
}
}
end
end
end
Run Code Online (Sandbox Code Playgroud)
我们也使用这些标记器来搜索域名和电子邮件地址.