elasticsearch - Liferay Search没有给出同义词搜索结果?

标签 elasticsearch liferay liferay-dxp

我们在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"
}
'

这给出了来自onymous.txt文件中“acl”的所有同义词的结果。但是Liferay搜索没有给出具有同义词的搜索结果。例如:search(“acl”)=>不会在同义词.txt文件中给出带有其同义词的结果。

最佳答案

您是否在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"
},

然后将整个修改后的映射放入“替代类型映射”字段中

关于elasticsearch - Liferay Search没有给出同义词搜索结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47146241/

相关文章:

java - 在liferay processAction方法中转发到JSp文件

java - 在 Liferay 中搜索组织下的用户

linux - RHEL 上的 Elasticsearch 安装问题

elasticsearch - 在Elasticsearch过滤器索引中查找特定查询

elasticsearch - 验证失败 : 1: mapping type is missing; in elasticsearch

tomcat - 上传和搜索大型 pdf 文件

maven - 为 Liferay 手动创建可部署的 JAR

gradle - 使用 Gradle 4.3.1 找不到方法 compileOnly

liferay - 我们如何覆盖 liferay7 中的 liferay 模块?

elasticsearch - Elasticsearch映射通过模板选择所有字段以更改其数据类型Elasticsearch