2014-02-10 79 views
1

我试图在ES中编制索引语言时创建同义词搜索。在elasticsearch中搜索同义词

例如,

索引文件 - >名称:德国

别名:德语,德语,XYZ

我想说的是,当我输入德语或德语或XYZ, ES让我回到了德国......

这可能吗?

+0

是的,当然是http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-synonym-tokenfilter.html – phoet

回答

0

是的非常。 ElasticSearch非常好地处理同义词。下面是我如何我的群集上配置同义词为例 -

curl -XPOST localhost:9200/**new-index** -d '{ 
"settings": { 
"number_of_shards": 2, 
"number_of_replicas": 0, 
"analysis": { 
    "filter": { 
    "synonym": { 
     "type": "synonym", 
     "synonyms_path": "synonyms/synonyms.txt" 
    } 
    }, 
    "analyzer": { 
    "synonym": { 
     "tokenizer": "lowercase", 
     "filter": [ 
     "synonym" 
     ] 
    } 
    } 
} 
}, 
"mappings": { 
"**new-type**": { 
    "_all": { 
    "enabled": false 
    }, 
    "properties": { 
    "Title": { 
     "type": "multi_field", 
     "store": "yes", 
     "fields": { 
     "Title": { 
      "type": "string", 
      "analyzer": "synonym" 
     } 
     } 
     } 
    } 
    } 
} 
}' 

的代名词文件的路径查找同义词文件夹配置文件夹内,并找到该文本文件。的synonyms.txt您的要求的内容的一个例子是 -

德语,德语,XYZ

记住 - 如果你在索引时间具有较低的情况下,过滤器,同义词需要在小写。如果不工作,重新启动节点。