每种语言的轮胎指数?

时间:2012-10-02 14:57:23

标签: ruby-on-rails ruby elasticsearch tire

我在Rails模型上有以下轮胎映射:

   mapping do

     indexes :name, analyzer: 'arabic', boost: 10

     indexes :city_name, analyzer: 'arabic', boost: 5

     indexes :description, analyzer: 'arabic' 

   end

能够涵盖多种语言的最佳方式是什么(如果我想添加英语或其他内容)?

1 个答案:

答案 0 :(得分:1)

重要的是,您需要使用每种语言的特定字段来索引数据  要在其上应用语言依赖文本分析(词干,停用词,同义词等)的每个字段都需要根据语言本身进行特定的映射。假设您有一个标题和一个内容字段,那么每种语言都需要几个字段 然后,您可以决定在同一索引,相同类型和添加包含该语言的字段上索引所有文档。否则,您可以将每种语言编入索引为不同的类型,这与第一个选项相同,但您不需要在查询时手动指定语言过滤器。只要您在网址中将语言指定为类型,就会“自动”应用过滤器,如下所示:

curl -X GET http://localhost:9200/index/en/_search -d '{
  "query" : {"match_all" : ""}
}

否则,您还可以为每种语言使用不同的索引。这真的取决于你的数据,索引的大小(每种语言有多少文档?)以及你将如何进行查询(总是按语言或者你可以混合使用不同的语言?)。

此外,Shay最近在柏林流行语中发表的Data desing patterns演讲可能对您有用。