在Liferay DXP和Elasticsearch 2.2.0中,我们有一个自定义的搜索portlet。我们在elasticsearch设置中添加了以下同义词搜索设置。
{
"index" : {
"analysis" : {
"analyzer" : {
"synonym" : {
"tokenizer" : "whitespace",
"filter" : ["synonym"]
}
},
"filter" : {
"synonym" : {
"type" : "synonym",
"synonyms_path" : "analysis/synonym.txt"
}
}
}
}}
我们还使用以下代码验证了是否将同义词分析器添加到索引中。
curl -XPOST 'localhost:9200/liferay-20116/_analyze?pretty' -H 'Content-Type: application/json' -d'
{
"analyzer": "synonym",
"text": "acl"
}
'
这将给出synonyms.txt文件中"acl“的所有同义词的结果。但Liferay搜索不会给出带有同义词的搜索结果。对于ex:=> (“acl”),在synonyms.txt文件中不会给出同义词的结果。
发布于 2018-10-10 10:31:35
您是否覆盖了Liferay中的类型映射?
尝试查找liferay type-mappings.json。复制并粘贴完整内容,并修改要使用synonym_analyzer的字段。
例如:
"title_en_US": {
"store": true,
"term_vector": "with_positions_offsets",
"type": "text",
"search_analyzer" : "synonym_analyzer",
"analyzer" : "synonym_analyzer"
},
然后将整个修改后的映射放在'Override type mappings‘字段中
https://stackoverflow.com/questions/47146241
复制相似问题