Tag: solr

如何使用Solr管理“分页”?

我有一个分类广告网站…我让Solr搜索分类广告,然后返回ID:nrs然后我用它来放入一个数组。 然后我使用这个数组在MySql db中查找任何分类,其中ID:s匹配Solr返回的数组中的ID:s。 现在,因为这个数组可能非常大(100个记录或更多),所以我需要“页面”结果,这样一次可能返回100个。 然后在MySql中使用这100个ID:s来查找分类。 那么,是否可以使用SOLR进行寻呼? 如果是这样,怎么样? 我需要示例代码……结果会是什么样的。 我大多需要一个彻底的例子! 谢谢

基于Solr规则的提升

我正在使用Solr-5.0.0 。 我正在搜索字段product_name 。 我需要添加一些规则来获得相关结果。 如果我搜索一个单词,如果存在完全匹配,那么它应该首先出现。 例如:如果我搜索laptop ,它应首先返回带有笔记本电脑的确切product_name 。 如果我搜索多个单词,它应该遵守规则1.并且最小字长距离名称首先出现。 例如:如果我搜索dell laptop ,它应该首先返回戴尔笔记本电脑 戴尔笔记本电脑 。 如果我搜索单词,它不应该返回包含或without包含单词的结果。 例如:在搜索laptop bag ,它不应该给戴尔笔记本电脑带袋或戴尔笔记本电脑没有袋子结果。 如何在查询时实现这些基于搜索相关结果的规则? 我的应用程序是在java中,所以赞赏Java答案。

在Solr中定时查询

我通过自定义开发的图层查询solr,我在我的图层中超时的几个查询仍然在solr实例中。 solr中是否有一个参数可用于超时特定查询

java – MongoDB + Solr表演

我一直在四处寻找如何将MongoDB与Solr结合使用,这里的一些问题有部分反应,但没有什么真正具体的(更像是理论)。 在我的应用程序中,我将在MongoDB中存储大量的文档(可能高达数亿),我想对这些文档的某些属性实现全文搜索,所以我猜Solr是最好的方法这个。 我想知道的是我应该如何配置/执行所有内容以使其具有良好的性能? 现在,这就是我做的事(我知道它不是最优的): 1-在MongoDB中插入对象时,我将其添加到Solr SolrServer server = getServer(); SolrInputDocument document = new SolrInputDocument(); document.addField(“id”, documentId); … server.add(document); server.commit(); 2-当更新对象的属性时,由于Solr不能只更新一个字段,首先我从MongoDB中检索对象然后用对象和新属性的所有属性更新Solr索引并执行类似的操作 StreamingUpdateSolrServer update = new StreamingUpdateSolrServer(url, 1, 0); SolrInputDocument document = new SolrInputDocument(); document.addField(“id”, documentId); … update.add(document); update.commit(); 3-查询时,首先我查询Solr,然后在检索文档列表SolrDocumentList我会浏览每个文档,并且: 获取文档的ID 从MongoDB获取具有相同id的对象,以便能够从那里检索属性 4-删除时,我还没有完成那部分,并且不确定如何在Java中完成 那么有人建议如何以更有效的方式为这里描述的每个场景做到这一点? 喜欢这样做的过程,当在Solr中有大量文档并一次添加一个文档时,它不需要1小时来重建索引? 我的要求是用户可能希望一次添加一个文档,我希望他们能够立即检索它

将Solr xml文件解析为SolrInputDocument

如果我有预期的Solr格式的单个文件(每个文件只有一个doc): GB18030TEST Test with some GB18030 encoded characters No accents here ÕâÊÇÒ»¸ö¹¦ÄÜ 0 难道没有办法轻松地将该文件封送到SolrInputDocument中吗? 我自己必须做解析吗? 编辑:我需要它在java pojo中因为我想修改一些字段,然后用SolrJ索引它…

当ComponentScanning其他@SpringBootApplications时,SpringBootApplication排除

我在阻止Spring Boot自动配置某些类(在此示例中为SolrAutoConfiguration)时遇到了一些困难。 为了说明我设置了一个简化的例子: https://github.com/timtebeek/componentscan-exclusions 实际上,有20多个内部@SpringBootApplication项目,每个项目都有自己的依赖项。 (不理想/不是我的想法,但现在很难离开。) 出现问题的原因是多个子项目正在使用Solr 5.2.1,但Spring Boot仅与4.x兼容。 在最终的应用程序(示例中的module-b)中,我希望在所有模块中导入所有@SpringBootApplication类,同时阻止SolrAutoConfiguration运行: @ComponentScan(“project”) // Broad scan across all company jars @SpringBootApplication(exclude = { SolrAutoConfiguration.class }) // Failing exclude public class ModuleBApp { public static void main(final String[] args) { SpringApplication.run(ModuleBApp.class, args); } } 这失败了,因为在没有特定排除的情况下通过@ComponentScan获取的@SpringBootApplication任何实例仍然加载SolrAutoConfiguration 。 在组合多个@SpringBootApplication类时,如何正确排除自动配置类? 我已经尝试在最终的@SpringBootApplication上使用excludeFilters ,但这还没有找到解决方案。

solrj:如何通过索引中的多值字段存储和检索List

我的用例是一个包含在线媒体标题的索引。 数据提供者将类别列表与每个标题相关联。 我正在使用SolrJ通过带注释的POJO类填充索引 例如 @Field(“title”) private String title; @Field(“categories”) private List categoryList; 相关的POJO是 public class Category { private Long id; private String name; … } 我的问题有两个部分: a)这可能通过SolrJ – 文档只包含一个使用List of String的@Field的例子,所以我假设序列化/编组只支持简单类型? b)如何设置架构来保存它。 我有一个天真的假设我只需要在必填字段上设置multiValued = true它将全部通过魔法工作。 我刚刚开始实施这一点,所以任何回复都将受到高度赞赏。

当我从solr查询时,它发生了一个常见的exception,告诉我未定义的字段userId

我正在开发一个Web应用程序。 我使用spring mvc框架,cassandra和solr。 我使用独立的solr,而不是solr cloud。 我使用solr作为全文检索工具。 我面临一个奇怪的问题,首先是schema.xml 。 id userId 然后我向您展示solrconfig.xml LUCENE_40 ${solr.core0.data.dir:} ${solr.core0.data.dir:} true solrpingquery all solr 当我从solr查询数据时,我使用solrj库来实现一般的查询。 喜欢: String queryExpression = “*:*”; String sortField = “createTime”; String baseUrl = SolrUtil.getSolrBaseURL(solrHttpServer.getBaseURL()); solrHttpServer.setBaseURL(baseUrl + “/” + coreName); SolrQuery query = new SolrQuery(); query.setQuery(queryExpression); query.setSortField(sortField, SolrQuery.ORDER.asc); QueryResponse rsp = solrHttpServer.query(query); 以下代码是查询期间的错误信息: org.apache.solr.common.SolrException: undefined field userId at […]

如何确定SOLR索引的字段类型?

我在MySQL表中有两个表字段。 一个是VARCHAR,是分类(分类广告网站)的“标题”。 另一个是TEXT字段,其中包含分类的“文本”。 两个问题: 我该如何确定如何索引这两个字段? (什么字段类型,使用什么类等) 目前,我有一个“ad_id”作为每个广告的唯一标识符,例如“bmw_m3_82398292”。 每当SOLR找到“查询匹配”时,如何让SOLR返回此标识符? (标识符的第一部分实际上是标题字段内容,第二部分是选择的随机数) 谢谢

如何使用SolrJ获取solr服务器中所有核心的列表

我们使用Solr进行搜索,并将数据分片到多个核心。 我们每周有一个核心数据,因此我们每周都会动态创建和删除核心。 如何查询solr服务器以获取其所有核心的列表? JavaDoc说我可以使用coreAdminHandler.getCoreContainer().getCoreNames() ,但我不知道如何构建coreAdminHandler对象。