搜索技巧 400 [searchkick_search]未找到

3

有人遇到了Searchkick的这种问题吗?

我做错了什么吗?

有人可以给个提示吗?

谢谢。

控制器:

@products = Product.search(params[:query], page: params[:page])

模型:

after_touch :reindex

 searchkick mappings: {
    product: {
      properties: {
        name: {type: "string", analyzer: "keyword"}
      }
    }
  }
   def search_data
    as_json only: [:name, :price]
    # or equivalently
    {
      name: name,
      price: price
    }
   end

[400] {"error":{"root_cause":[{"type":"query_parsing_exception","reason":"[match]分析器[searchkick_search]未找到","index":"products_development_20151125203817235","line":1,"col":89}],"type":"search_phase_execution_exception","reason":"所有碎片都失败了","phase":"query","grouped":true,"failed_shards":[{"shard":0,"index":"products_development_20151125203817235","node":"f2jvKNboRcGf0NF11yEqyw","reason":{"type":"query_parsing_exception","reason":"[match]分析器[searchkick_search]未找到","index":"products_development_20151125203817235","line":1,"col":89}}]},"status":400}
1个回答

2

将您的merge_mappings变量设置为true

after_touch :reindex

 searchkick merge_mappings: true, mappings: {
    product: {
      properties: {
        name: {type: "string", analyzer: "keyword"}
      }
    }
  }
   def search_data
    as_json only: [:name, :price]
    # or equivalently
    {
      name: name,
      price: price
    }
   end

然后运行rake searchkick:reindex:all或者Model.reindex

希望这可以帮到你。祝好运!


1
为了能够使用searchkick的搜索功能 - Oss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接