gpt4 book ai didi

tokenize - 如何防止 Facet Terms 标记化

转载 作者:行者123 更新时间:2023-11-29 02:45:27 24 4
gpt4 key购买 nike

我正在使用 Facet Terms 获取字段的所有唯一值及其计数。我得到了错误的结果。

term: web 
Count: 1191979
term: misc
Count: 1191979
term: passwd
Count: 1191979
term: etc
Count: 1191979

虽然实际结果应该是:

term: WEB-MISC /etc/passwd 
Count: 1191979

这是我的示例查询:

{
"facets": {
"terms1": {
"terms": {
"field": "message"
}
}
}
}

最佳答案

如果重新索引是一个选项,最好更改映射并将此字段标记为 not_analyzed

"your_field" : { "type": "string", "index" : "not_analyzed" }

您可以使用 multi field type如果需要保留该字段的分析版本:

"your_field" : {
"type" : "multi_field",
"fields" : {
"your_field" : {"type" : "string", "index" : "analyzed"},
"untouched" : {"type" : "string", "index" : "not_analyzed"}
}
}

这样,您可以继续在查询中使用 your_field,同时使用 your_field.untouched 运行分面搜索。

或者,如果存储了这个字段,您可以使用脚本字段 facet 代替:

"facets" : {
"term" : {
"terms" : {
"script_field" : "_fields.your_field.value"
}
}
}

不得已,如果不存储这个字段,而是在索引中存储了记录源,可以试试这个:

"facets" : {
"term" : {
"terms" : {
"script_field" : "_source.your_field"
}
}
}

第一个解决方案是最有效的。最后一种解决方案效率最低,可能会在大型索引上花费大量时间。

关于tokenize - 如何防止 Facet Terms 标记化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10093638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com