elasticsearch 5.X+;searchkick(rails)配置

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: {

我正在将elasticsearch实例从V1.7升级到5.3,在启动reindex时遇到了一些错误。据我所知,大多数模型都可以很好地建立索引,但我有几个模型使用了更高级的设置,但似乎不起作用。下面是我的一个模型(brand.rb)的示例:

searchkick_映射和searchkick_设置在我的模型中包含的另一个文件中定义。代码如下:

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