我已经使用elasticsearch实现了轮胎。 本地我的项目运行良好,我没有问题搜索我的索引。 但是当我部署我的应用程序到我的服务器我得到这个错误信息:轮胎和Elasticsearch SearchRequestFailed SearchPhaseExecutionException
轮胎::搜索:: SearchRequestFailed(500:{“错误”:“SearchPhaseExecutionException [未能执行阶段[query_fetch],完全失效; shardFailures {[hDTlT_K_Sl6P5regwKNJyg] [articles] [0]:QueryPhaseExecutionException [[articles] [0]:query [ConstantScore(NotDeleted(cache(_type:article)))],from [0],size [25],sort [!] :查询失败[无法执行主查询]];嵌套:IOException [无法对每个文档具有多个值的字符串类型排序,或者每个字段具有多个标记];}]“,”status“:500} ):
我相信我的文章存储在我的索引中,因为我没有收到创建它们的任何错误。我还试图与该手动运行相同的查询:
curl -XPOST 'http://localhost:9200/articles/article/_search' -d '{
"sort": [
{
"supplier_code": "desc"
}
]
}'
而且我得到几乎相同的响应:
{“错误”:“SearchPhaseExecutionException [未能执行相位[query_fetch],总故障; shardFailures {[hDTlT_K_Sl6P5regwKNJyg] [articles] [0]:QueryPhaseExecutionException [[articles] [0]:query [ConstantScore(NotDeleted(cache(_type:article)))],from [0],size [10],sort [! ]:查询失败[无法执行主查询]];嵌套:IOException [无法对每个文档具有多个值的字符串类型排序,或者每个字段具有多个标记];}]“,”status“:500 }
所以有人可以指出我正确的方向吗? 我复制了我在本地机器上使用的确切sam配置。 很奇怪,它不适用于服务器。
缺少什么我在这里?
感谢很多提前
编辑:
我发现我试图执行排序导致了问题。 另外,这与我的文章对象到弹性搜索的映射有关。
东西与领域我想排序放在not_analyzed我是我正确? 如果我只映射一个字段,是否需要显式映射所有字段?
感谢您的解释,我可以使用什么样的分析器,以便我可以使用该字段进行搜索和排序? 此外,如果我添加一些映射,我需要明确地映射我的模型的所有我的领域? – Niels
这取决于您的搜索用例。任何产生不超过一个标记的分析仪都可以。如果您的用例需要将字段的内容分割为多个标记,则可以使用[多字段](http://www.elasticsearch.org/guide/reference/mapping/multi-field-type.html)为字段两次。您只能映射一个字段,而使所有其他字段保持动态。但是,如果字段已动态映射,则需要重新创建索引。 – imotov