我在 Liferay 門戶 7.3.7 上遇到了一個難題,它不區分大小寫,并且通過具有自定義 ddm 欄位的 JournalArticles 中的 elasticsearch 進行無變音符號搜索。Liferay 在Configuration->Search中生成欄位映射,如下所示:
...
},
"localized_name_sk_SK_sortable" : {
"store" : true,
"type" : "keyword"
},
...
我希望這些 *_sortable 欄位可用于不區分大小寫和無直徑搜索,因此我嘗試在System Settings->Search->Elasticsearch 7中將分析器和規范器添加到 liferay 搜索高級配置,如下所示:
{
"analysis":{
"analyzer":{
"ascii_analyzer":{
"tokenizer": "standard",
"filter":["asciifolding","lowercase"]
}
},
"normalizer": {
"ascii_normalizer": {
"type": "custom",
"char_filter": [],
"filter": ["lowercase", "asciifolding"]
}
}
}
}
之后,我覆寫了 template_string_sortable 的映射:
{
"template_string_sortable" : {
"mapping" : {
"analyzer": "ascii_analyzer",
"normalizer": "ascii_normalizer",
"store" : true,
"type" : "keyword"
},
"match_mapping_type" : "string",
"match" : "*_sortable"
}
}
重新索引后,我的可排序欄位如下所示:
...
},
"localized_name_sk_SK_sortable" : {
"normalizer" : "ascii_normalizer",
"store" : true,
"type" : "keyword"
},
...
接下來,我嘗試為我的 ddm 結構創建新內容,但我的所有可排序欄位看起來都一樣,如下所示:
"localized_title_sk_SK": "test diakrity ?as? 1 ?????yáíé?ň title",
"localized_title_sk_SK_sortable": "test diakrity ?as? 1 ?????yáíé?ň title",
但我需要沒有國家字符的可排序欄位,所以我可以通過“ cast 1 ”通過 wildcardQuery 在localized_title_sk_SK_sortable 等中找到... THX 任何建議(也許我只是對整個問題有錯誤的外觀?而且我真的很新到 ES)
uj5u.com熱心網友回復:
首先,應用original_ascii_folding然后lowercase過濾會更好,但請記住,此過濾器用于搜索,并且您的_source資料不會更改,因為您在欄位上應用了分析器。
如果您需要在攝取資料之前對其進行操作,您可以使用 Elasticsearch 中的攝取管道功能以獲取更多資訊,請查看此處。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/471146.html
標籤:弹性搜索 不区分大小写 变音符号 liferay-7.3
上一篇:不確定如何在開發工具>網路>xhr中查詢隱藏的api
下一篇:索引模式在kibana中不可視化
