elasticsearch - 应用ngrm分析器时需要文本的原始长度
问题描述
当二元语法分析器应用于名称字段并且我检查doc[Name].value.length()
它返回 2,但我想要名称的原始长度。示例Infotech = 8
需要返回 8
"mappings": {
"Data": {
"properties": {
"Name": {
"type": "text",
"analyzer": "bigrams" ,
"similarity": "scripted_tfidf",
"fielddata": true,
"fields": {
"length": {
"type": "token_count",
"analyzer": "standard"
}
}
},
解决方案
您必须在映射中添加关键字类型的字段,因为它不会像这样分析:
"fields": {
"keyword": {
"type":"keyword"
}
}
然后您可以使用以下方法获得实际长度:
doc['Name.keyword'].value.length()
推荐阅读
- javascript - How to get slug from an URL JavaScript
- java - 应用程序中的 DB2 到 MSSQL 迁移错误“org.hibernate.MappingException:无法实例化 id 生成器”和“方言不支持序列”
- python - “试图以访问权限禁止的方式访问套接字”,同时尝试访问 spotify api
- haskell - 折叠二叉树时无法匹配预期类型
- ruby-on-rails - RoR 命令“rake routes”中止
- google-colaboratory - Google Colab 中的云 TPU 虚拟机?
- java - 如何在 Android 中以编程方式设置导航抽屉的背景颜色
- swift - 如何使用swift以编程方式根据数据设置滚动视图的高度
- sql - psql NOW() 获取不同的时区
- powershell - 具有强制和可选参数的函数