2012-10-02 49 views
0

我有一个Rails模型下面的轮胎映射:每种语言的轮胎索引?

mapping do 

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

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

    indexes :description, analyzer: 'arabic' 

    end 

什么是能够有覆盖多国语言的最佳方式(如果我想添加英语或别的东西)?

回答

1

重要的是,您需要使用每种语言的特定字段对数据进行索引。
您要根据文本分析应用语言的各个字段(词干,停用词,同义词等)都需要根据语言本身进行特定的映射。假设你有一个标题和一个内容字段,你需要为每种语言提供几个这样的字段。
然后,您可以决定将所有文档编入索引相同,类型相同,并添加包含该语言的字段。否则,您可以将每种语言编入一个不同的类型,这与第一个选项相同,但您不需要在查询时手动指定语言过滤器。只要你喜欢这个在URL中指定的语言类型的过滤器将是“自动”适用于:

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

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

另外,Shay最近给柏林流行语的Data desing patterns谈话可能对你很有意思。