Elasticsearch 检查标题是否已在类型中使用
Elasticsearch check if title is already used in type
我在 Elasticsearch 中收集了一个数据库,我没有通过 ID 来识别它们,而是通过标题来识别它们。因此,每种类型的标题都不相同。
我试过 must => match_phrase
但它让我在 return 中得到了不止一个。有些东西可能叫做 "Document 1"
,有些东西可能叫做 "Document 1,2,3"
。因此,通过 match_phrase
.
会 return 不止一个结果
假设我有 5 个文件名为:
- 文档示例 1
- 示例 1
- 1 个文档示例
- 文档示例 1 和 2
- 文档示例
我应该只向 return 发送什么请求,例如:"Document example"
?
我尝试了这种搜索的不同变体 127.0.0.1:9200/index/type/_search
:
{
"query":{
"match_phrase": {
"title":"Document example"
}
}
}
所以我想知道如何检查或搜索准确的解析并在 return 中只得到一个或零个结果?
编辑
127.0.0.1:9200/myindex/mytype/_mapping
return这是:
{
"myindex": {
"mappings": {
"mytype": {
"properties": {
"category": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"date": {
"type": "date"
},
"link": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"size": {
"type": "long"
},
"source": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}
只需在 title.keyword
:
上使用 term
过滤器(精确 匹配)
{
"query": {
"term": {
"title.keyword": {
"value": "Document example"
}
}
}
}
我在 Elasticsearch 中收集了一个数据库,我没有通过 ID 来识别它们,而是通过标题来识别它们。因此,每种类型的标题都不相同。
我试过 must => match_phrase
但它让我在 return 中得到了不止一个。有些东西可能叫做 "Document 1"
,有些东西可能叫做 "Document 1,2,3"
。因此,通过 match_phrase
.
假设我有 5 个文件名为:
- 文档示例 1
- 示例 1
- 1 个文档示例
- 文档示例 1 和 2
- 文档示例
我应该只向 return 发送什么请求,例如:"Document example"
?
我尝试了这种搜索的不同变体 127.0.0.1:9200/index/type/_search
:
{
"query":{
"match_phrase": {
"title":"Document example"
}
}
}
所以我想知道如何检查或搜索准确的解析并在 return 中只得到一个或零个结果?
编辑
127.0.0.1:9200/myindex/mytype/_mapping
return这是:
{
"myindex": {
"mappings": {
"mytype": {
"properties": {
"category": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"date": {
"type": "date"
},
"link": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"size": {
"type": "long"
},
"source": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}
只需在 title.keyword
:
term
过滤器(精确 匹配)
{
"query": {
"term": {
"title.keyword": {
"value": "Document example"
}
}
}
}