elasticsearch 5.X+;searchkick(rails)配置
我正在将elasticsearch实例从V1.7升级到5.3,在启动reindex时遇到了一些错误。据我所知,大多数模型都可以很好地建立索引,但我有几个模型使用了更高级的设置,但似乎不起作用。下面是我的一个模型(brand.rb)的示例: searchkick_映射和searchkick_设置在我的模型中包含的另一个文件中定义。代码如下:elasticsearch 5.X+;searchkick(rails)配置,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我正在将elasticsearch实例从V1.7升级到5.3,在启动reindex时遇到了一些错误。据我所知,大多数模型都可以很好地建立索引,但我有几个模型使用了更高级的设置,但似乎不起作用。下面是我的一个模型(brand.rb)的示例: searchkick_映射和searchkick_设置在我的模型中包含的另一个文件中定义。代码如下: def searchkick_mappings { brand: { properties: { name: {
def searchkick_mappings
{
brand: {
properties: {
name: {
type: 'text',
analyzer: 'standard',
fields: {
autocomplete: {
type: 'text',
analyzer: 'autocomplete'
},
folded: {
type: 'text',
analyzer: 'folded'
},
delimited: {
type: 'text',
analyzer: 'delimited'
}
}
}
}
}
}
end
def searchkick_settings
{
analysis: {
filter: {
autocomplete_filter: {
type: 'edge_ngram',
min_gram: 1,
max_gram: 20
},
delimiter_filter: {
type: 'word_delimiter',
preserve_original: true
}
},
analyzer: {
folded: {
type: 'custom',
tokenizer: 'standard',
filter: ['standard','lowercase','asciifolding']
},
delimited: {
type: 'custom',
tokenizer: 'whitespace',
filter: ['lowercase','delimiter_filter']
},
autocomplete: {
type: 'custom',
tokenizer: 'standard',
filter: ['standard','lowercase', 'asciifolding',
'autocomplete_filter']
}
}
}
}
end
我在V1.7->5.3版本中所做的唯一更改是,我必须将“type”字段从“String”更改为“text”,因为它们似乎删除了字符串类型,而改为文本和关键字类型,在文本和关键字类型中分析文本而不分析关键字。当我运行bundle exec searchkick:reindex:all时收到的错误表明存在未知参数“ignore_over”。通过阅读文档,似乎参数仅用于关键字字段而不是文本,但我并没有在自定义映射中添加该参数,所以我不明白为什么会出现该参数
如果您需要查看更多代码/需要了解更多信息,请告诉我。我很乐意编辑任何有帮助的评论
def searchkick_mappings
{
brand: {
properties: {
name: {
type: 'text',
analyzer: 'standard',
fields: {
autocomplete: {
type: 'text',
analyzer: 'autocomplete'
},
folded: {
type: 'text',
analyzer: 'folded'
},
delimited: {
type: 'text',
analyzer: 'delimited'
}
}
}
}
}
}
end
def searchkick_settings
{
analysis: {
filter: {
autocomplete_filter: {
type: 'edge_ngram',
min_gram: 1,
max_gram: 20
},
delimiter_filter: {
type: 'word_delimiter',
preserve_original: true
}
},
analyzer: {
folded: {
type: 'custom',
tokenizer: 'standard',
filter: ['standard','lowercase','asciifolding']
},
delimited: {
type: 'custom',
tokenizer: 'whitespace',
filter: ['lowercase','delimiter_filter']
},
autocomplete: {
type: 'custom',
tokenizer: 'standard',
filter: ['standard','lowercase', 'asciifolding',
'autocomplete_filter']
}
}
}
}
end