我想将Elasticsearch用于网站,并且需要通过网页的URL字符串快速检索文档 - 实际路径(例如/shoes/sneakers/nike
)。路径是独一无二的。
我想到了以下解决方案:
哪一个是更好的解决方案,是否有更好的方法?
谢谢!
答案 0 :(得分:1)
您可以将url字段存储为关键字数据类型,并使用以下查询来获取结果。
https://www.elastic.co/guide/en/elasticsearch/reference/master/keyword.html
POST index/_search
{
"query": {
"term": {
"url": "/shoes/sneakers/nike"
}
}
}
如果您将其存储为文本数据类型,那么elasticsearch将自动为您创建关键字字段,您可以使用以下查询来获取结果
由Elasticsearch创建的映射
"url": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
查询搜索
POST index/_search
{
"query": {
"term": {
"url.keyword": "/shoes/sneakers/nike"
}
}
}
答案 1 :(得分:0)
{
"query": {
"match_phrase": {
"url": "/shoes/sneakers/nike"
}
}
}
您需要使用其值存储url字段。这个match_phrase将解决您的问题。