elasticsearch - 我想找到子字符串的确切术语,确切的术语不仅仅是术语的一部分
问题描述
我有一组来自 wikidata ( http://www.wikidata.org ) 的 json 文档来索引到 elasticsearch 进行搜索。它有几个字段。例如,它如下所示。
{
eId:Q25338
eLabel:"The Little Prince, Little Prince",
...
}
在这里,我想做的是让用户搜索“确切的术语”,而不是术语的一部分。意思是,如果用户搜索“王子”,我不想在搜索结果中显示此文档。当用户输入整个词“小王子”或“小王子”时,我想让这个 json 包含在搜索结果中,即。
- 我是否应该预处理所有逗号分隔的句子(某些 eLabel 在列表中有数十个元素)并将其制作成一堆不同的文档并分别制作关键字词字段?
- 如果没有,我如何制作映射文件以按预期进行此搜索?
我当前的 Mappings.json。
"mappings": {
"entity": {
"properties": {
"eLabel": { # want to replace
"type": "text" ,
"index_options": "docs" ,
"analyzer": "my_analyzer"
} ,
"eid": {
"type": "keyword"
} ,
"subclass": {
"type": "boolean"
} ,
"pLabel": {
"type": "text" ,
"index_options": "docs" ,
"analyzer": "my_analyzer"
} ,
"prop_id": {
"type": "keyword"
} ,
"pType": {
"type": "keyword"
} ,
"way": {
"type": "keyword"
} ,
"chain": {
"type": "integer"
} ,
"siteKey": {
"type": "keyword"
},
"version": {
"type": "integer"
},
"docId": {
"type": "integer"
}
}
}
}
解决方案
推荐阅读
- reporting-services - 如何处理多参数 SSRS 字段中的空值
- vb.net - VB.NET 输入值不足时弹出消息框
- ajax - 将我获取的数据存储到我的数组 const = player
- python-3.x - 如何使用networkx中的用户节点从txt文件添加用户属性
- c++ - 如何静态编译多个 Windows dll 和 libstdc++?
- typescript - TypeScript 4.2.1 Array.some() 不接受返回布尔值的函数
- python - Azure Functions Blob 部署
- javascript - 在 javascript 中重新映射对象数组
- php - 如何在php中小写我的标题的第一个字母?
- javascript - 覆盖 Object.entries() 的类型会导致意外错误