我正在使用 Solr 4 在 Java Web 应用程序中进行搜索。Solr 产生一个 JSON 响应,我必须从中提取搜索结果并将它们翻译成 html,以便用户可以阅读。我知道一种解决方案,但它似乎很愚蠢,我认为必须有聪明的想法。
{
"responseHeader": {
"status": 0,
"QTime": 0,
"params": {
"fl": "id,title",
"indent": "true",
"q": "solr",
"wt": "json"
}
},
"response": {
"numFound": 3,
"start": 0,
"docs": [
{
"id": "1",
"title": "Solr cookbook"
},
{
"id": "2",
"title": "Solr results"
},
{
"id": "3",
"title": "Solr perfect search"
}
]
}
}
之后,我将此文本评估为:
var obj = eval ("(" + txt + ")");
要生成 html 页面,我可以使用
<script>
document.getElementById("id").innerHTML = obj.response.docs[1].id
document.getElementById("title").innerHTML = obj.response.docs[1].title
</script>
or
document.write(obj.response.docs[1].id);
但限制是每次 solr 给出不同对象结构的响应,即一个对象可能有年龄字段,但其他对象不能有,因为它取决于查询。
我想使用一个单一的 JSP 页面来显示所有搜索查询的搜索结果(如 Google)
是否可以编写一个代码段,该代码段适用于具有不同架构的任何可能的搜索结果。
遇到我的情况可能出现的任何错误后,Javascript 将停止工作。这也是问题。如果我使用 for 循环来遍历对象层次结构,它很容易出错。
是否可以使用单个视图页面谢谢。