WordNet与ElasticSearch集成 - 如何添加新的同义词

时间:2014-08-17 10:56:41

标签: elasticsearch wordnet synonym

我使用 ElasticSearch 版本1.2.3

我已将 WordNet 3.0 集成为ElasticSearch Synonyms Analyzer的同义词数据库。 (完整的WordNet安装:configure,make,make install)

我已将以下代码添加到ElasticSearch索引设置中(索引名称为 local_es

curl -XPUT 'localhost:9200/local_es/_settings' -d '{
"settings" : {
"analysis" : {
  "analyzer" : {
    "synonym" : {
    "tokenizer" : "lowercase",
    "filter" : ["synonym"]
    }
   },
   "filter" : {
   "synonym" : {
   "type" : "synonym",
   "format": "wordnet",
   "synonyms_path": "analysis/wn_s.pl"
   }
  }
 }
}
}'

我还使用以下代码更新了映射:

enter code here
curl -XPUT 'localhost:9200/local_es/shadowpage/_mapping' -d '{
"shadowpage" : {
"shadowPageName" : {
  "enabled" : true,
  "analyzer" : "synonym"
},
"properties" : {                
"name" : { "type" : "string", "index" : "analyzed", "analyzer" : "synonym" }
}
}
}'

一切都按预期工作。

如您所见,ElasticSearch从分析的文件路径中获取其数据/ wn_s.pl

wn_s.pl文件是一个包含所有数据库同义词的WordNet prolog文件。

如何向数据库添加新的同义词? 我是否将其直接添加到WordNet数据库?或者在 wn_s.pl 文件中?

1 个答案:

答案 0 :(得分:1)

如果您要主动修改同义词数据库,您可能只需将wordnet数据库中的同义词集转换为此格式的基本逗号分隔文件

    "british,english",
    "queen,monarch"

然后使用并编辑此文件作为同义词资源。