Я использую ElasticSearch в Rails 4 через elasticsearch-rails (https://github.com/elasticsearch/elasticsearch-rails). )
У меня есть модель пользователя с атрибутом электронной почты.
Я пытаюсь использовать токенизатор uax_url_email, описанный в документации:
class User < ActiveRecord::Base
include Elasticsearch::Model
include Elasticsearch::Model::Callbacks
settings analysis: { analyzer: { whole_email: { tokenizer: 'uax_url_email' } } } do
mappings dynamic: 'false' do
indexes :email, analyzer: 'whole_email'
end
end
end
Я следовал примерам в вики (https://github.com/elasticsearch/elasticsearch-rails/wiki) и документы модели elasticsearch (https://github.com/elasticsearch/elasticsearch-rails/wiki), которые должны прибыть в этот.
Это не работает. Если я напрямую запрашиваю elasticsearch:
curl -XGET 'localhost:9200/users/_mapping
Он возвращает:
{
"users": {
"mappings": {
"user": {
"properties": {
"birthdate": {
"type": "date",
"format": "dateOptionalTime"
},
"created_at": {
"type": "date",
"format": "dateOptionalTime"
},
"email": {
"type": "string"
},
"first_name": {
"type": "string"
},
"gender": {
"type": "string"
},
"id": {
"type": "long"
},
"last_name": {
"type": "string"
},
"name": {
"type": "string"
},
"role": {
"type": "string"
},
"updated_at": {
"type": "date",
"format": "dateOptionalTime"
}
}
}
}
}
}