我正在使用Rails6和 elasticsearch-rails
宝石。我试图索引一个函数的结果,但它没有出现在索引中,并且不可搜索。这是我的课。
class Asset < ApplicationRecord
include Elasticsearch::Model
include Elasticsearch::Model::Callbacks
def my_field
return "this is my field"
end
def as_indexed_json(options={})
as_json(only: [:my_field])
end
settings index: {
number_of_shards: 10,
max_ngram_diff: 50
},
analysis: {
filter: {
ngram_filter: {
type: "ngram",
min_gram: "3",
max_gram: "10",
}
},
analyzer: {
ngram_filter: {
type: "custom",
tokenizer: "standard",
filter: ["lowercase", "ngram_filter"]
}
}
} do
mapping do
indexes :my_field, type: "text", analyzer: "standard"
end
end
end
当我用 curl
(我省略了其他点击,因为它们除了id之外都是相同的):
curl -X GET 'localhost:9200/assets/_search?_source=true&pretty'
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 10,
"successful" : 10,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1911,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "assets",
"_type" : "_doc",
"_id" : "13",
"_score" : 1.0,
"_source" : { }
},
当我索引模型中定义的数据库字段时,一切都按预期工作,但我需要索引函数的返回值。
1条答案
按热度按时间bakd9h0s1#
你试过这个吗,希望有用