【发布时间】:2016-05-19 14:22:18
【问题描述】:
我是 Elastic 搜索的初学者,从上周开始我正在研究 POC。 我的文档中有一个 URL 字段,其中包含以下格式的 URL:“http://www.example.com/foo/navestelre-04-cop”。
我无法定义到我的整个对象的映射,因为每个对象都有不同的键,除了 URL。
这是我创建索引的方式:
POST
{
"settings" : {
"number_of_shards" : 5,
"mappings" : {
"properties" : {
"url" : { "type" : "string","index":"not_analyzed" }
}
}
}
}
我将我的 URL 字段保持为 not_analyzed,因为我从一些资源中了解到,将字段标记为 not_analyzed 会阻止它进行标记化,因此我可以在术语查询中查找该字段的完全匹配。
我也尝试使用空白分析器作为 URL 值,因此没有任何空白字符。但是我又一次无法成功命中。
以下是我的术语查询:
{
"query":{
"constant_score": {
"filter": {
"term": {
"url":"http://www.example.com/foo/navestelre-04-cop"
}
}
}
}
}
我猜问题出在分析器和标记器的某个地方,但我无法找到解决方案。任何形式的帮助都会极大地增强我的知识并帮助我找到解决方案。 提前致谢。
【问题讨论】:
-
检查索引的映射是否正确。您用于创建索引的查询错误且不完整。
-
或者,在你试图隐藏索引名和类型名时,你拿出了太多东西。完整的命令是
PUT /my_index { "settings": { "number_of_shards": 5 }, "mappings": { "my_type": { "properties": { "url": { "type": "string", "index": "not_analyzed" } } } } }
标签: elasticsearch elasticsearch-net