elasticsearch ElasticSearch查询未返回预期结果
以下查询和索引不返回预期结果。我不明白,考虑到映射约束,当我搜索“ICD9”时,它还会返回“I9”和“9”等的结果。有什么想法吗
elasticsearch ElasticSearch查询未返回预期结果,
elasticsearch,
elasticsearch,以下查询和索引不返回预期结果。我不明白,考虑到映射约束,当我搜索“ICD9”时,它还会返回“I9”和“9”等的结果。有什么想法吗 Here is the index mapping: { "mappings": { "mymap": { "dynamic_templates": [ { "codingstandard": { "match": "*.CodingStandard",
Here is the index mapping:
{
"mappings": {
"mymap": {
"dynamic_templates": [
{
"codingstandard": {
"match": "*.CodingStandard",
"mapping": {
"type": "string",
"index": "not_analyzed"
}
}
}
]
}
}
}
Here is my query:
{
"fields": [
"Diagnosis.CodingStandard"
],
"query": {
"query_string": {
"query": "Diagnosis.CodingStandard:ICD9"
}
}
}
Here are some of my results:
"hits": {
"total": 9778,
"max_score": 3.501487,
"hits": [
{
"_index": "myindex",
"_type": "mymapping",
"_id": "264235",
"_score": 3.501487,
"fields": {
"Diagnosis.CodingStandard": [
"I9"
]
}
},
{
"_index": "myindex",
"_type": "mymapping",
"_id": "264261",
"_score": 3.501487,
"fields": {
"Diagnosis.CodingStandard": [
"9"
]
}
},
etc...
是,因为您使用的是查询字符串,默认情况下elasticsearch对查询字符串进行模糊搜索 如果你想做精确搜索,你可以做过滤而不是查询字符串
{
"query":{
"filtered":{
"filter":{
"term":{
"Diagnosis.CodingStandard": "ICD9"
}
}
}
}
}
是,因为您使用的是查询字符串,默认情况下elasticsearch对查询字符串进行模糊搜索 如果你想做精确搜索,你可以做过滤而不是查询字符串
{
"query":{
"filtered":{
"filter":{
"term":{
"Diagnosis.CodingStandard": "ICD9"
}
}
}
}
}
你能检查字段的映射吗?获取你的索引/映射/字段/诊断标准吗?{“myindex”:{“映射”:{“mymapping”:{“Diagnosis.CodingStandard”:{“全名”:“Diagnosis.CodingStandard”,“映射”:{“Diagnosis.CodingStandard”:{“类型”:“字符串”,“索引”:“未分析”}我做了完全相同的事情,它对我有效,我只得到了ICD9,你使用的是什么版本的ES?ElasticSearch v1.4.4你能检查字段的映射吗{“全名”:“诊断.编码标准”,“映射”:{“诊断.编码标准”:{“类型”:“字符串”,“索引”:“未分析”}}}我做了完全相同的事情,它对我有效,我只得到了ICD9,你使用的是什么版本的ES?ElasticSearch v1.4.4相同的结果。{“_-index”:“myindex”,“_-type”:“mymapping”,“_-id:“264200”,“_-score:”1,“fields:{“Diagnosis.CodingStandard”:”:[“I9”]},尝试这个{“查询”:{“筛选”:{“筛选”:{“术语”:{“诊断.编码标准”:“Icd9”}}尝试使用字符串中的所有小写字母不起作用?好的,我想你需要的是删除索引重新创建它,然后尝试查询。你能告诉我映射和索引设置吗?结果相同。{“\u index”:“myindex”,“\u type”:“mymapping”,“\u id”:“264200”,“\u score”:1,“fields”:{“Diagnosis.CodingStandard”:[“I9”]},请尝试此{“查询”:{“筛选”:{“筛选”:{“术语”:{“Diagnosis.CodingStandard”:“Icd9”}}}尝试使用字符串中的所有小写字母不起作用?好的,我想你需要的是删除索引重新创建它,然后尝试查询。你能告诉我索引的映射和设置吗?