include Tire::Model::Search
mapping do
indexes :name, :boost => 10
indexes :account_id
indexes :company_name
indexes :email, :index => :not_analyzed
end
def to_indexed_json
to_json(:only => [:name, :account_id, :email, :company_name],
)
end
从上面的映射中可以看出该电子邮件字段设置为not_analyzed(无破损的令牌)。我有一个用户,电子邮件[email protected]。
现在,当我搜索vamsikrishna时,结果显示用户...我想它是使用默认分析器。为什么?
但是,它应该只显示完整的电子邮件指定我猜([email protected])。为什么在这种情况下not_analyze没有考虑?请帮忙。
我只需要将电子邮件字段设置为not_analyze,其他字段应使用标准分析器(这是默认完成)。
非常感谢您的回答。看到这个答案后没有更多的问题要问。我已经通过使用默认设置解决了它。但是,我只是想确定是否有更好的方法来设置分析仪的特定字段,而没有搜索查询中的字段选项。我不想在搜索查询中做出很多更改。这不符合我的要求。 @javanna接受这个答案,因为这给了一个例子更详细的信息。 –
我的建议是使用自定义分析器进行电子邮件。为什么这是一个不好的方法?我觉得这个答案和我的建议几乎一样 –