Tag: solr

从Solr中检索对象

所以,我有一个基于Java的Web项目 ,它显示从3个独立服务中检索的信息,托管在不同的服务器上,我使用Apache Http Client通过JSON中的 REST API检索信息,使用Gson库 。 我将Json转换为用于显示信息的POJO。 现在我想在我的项目中实现搜索function,所以我在一个单独的服务器上安装了Solr,我想要的是: 索引所有3个服务的solr服务器中的JSON。 以我的项目中描述的POJOforms从Solr获取搜索结果 我知道第(1)点可以通过jsonRequestHandler完成,但我不想写索引的单独逻辑,我在我的项目中使用Solrj来提取信息。 所以我想知道 solrj可以使用我的POJO定义来解析搜索结果吗? 还有上述工作场景的任何可能的工作流程,以及所需的工具(我是solrj的新手)?

如何在Java中修复“请求的数组大小超过VM限制”错误?

是否有一个日志选项可以让tomcat记录错误的查询而不是抛出这个? SEVERE:java.lang.OutOfMemoryError:请求的数组大小超过VM限制 (尝试将日志级别设置为FULL,但仅捕获上述内容) 这还不足以进一步调试 或者,如果可以通过调整以下内容来分配更多内存来修复此问题? -Xms1024M -Xmx4096M -XX:MaxPermSize = 256M 更新 -Xms6G -Xmx6G -XX:MaxPermSize = 1G -XX:PermSize = 512M (以上看起来效果更好,继续监控)

Solr Composite来自模式中现有字段的唯一键

我在solr中有一个名为LocationIndex的索引,其字段如下: // and some more fields solr_id 但是现在我想要更改模式,以便唯一键必须是两个已经存在的字段solr_id和solr_ver ……如下所示: // and some more fields solr_ver-solr_id 搜索之后我发现可以通过在schema中添加以下内容:(ref: Solr Composite来自模式中现有字段的唯一键 ) docid_s userid_s id id — 所以我改变了架构,最后它看起来像: solr_ver solr_id id id – // and some more fields id 但是在添加文档时它会给我错误: org.apache.solr.client.solrj.SolrServerException: Server at http://localhost:8983/solr/LocationIndex returned non ok status:400, message:Document [null] missing required field: id 我没有得到模式的哪些变化需要按预期工作? 在我添加的文档中,它包含字段solr_ver和solr_id 。 如何以及在何处(solr)通过将这些字段组合为solr_ver-solr_id创建id字段? […]

如何获得solr结果中的facet范围?

假设我在Solr中有一个名为price的字段,我将该字段刻面。 我希望将facets作为值的范围(例如:0-100,100-500,500-1000等)。 怎么做? 我可以预先指定范围,但我也想知道是否可以根据文档中的值自动计算范围(比如5个值)?