标签: solr

搜索多个SOLR核心并返回一个结果集

我们在SOLR中有几个核心设置,并希望搜索这些核心并返回单个结果集.

更多背景:我们有一个SOLR核心,我们索引我们的内部博客引擎.我们还有一个SOLR核心,我们为CMS系统编制索引.我们希望搜索这两个核心,但查看单个结果集.

我知道文档中有相关实体,但我们希望将内核分开,以便于维护和冗余.

我们使用SolrSharp作为搜索SOLR的包装器.任何建议或方向将不胜感激.

solr

28
推荐指数
2
解决办法
3万
查看次数

Solr删除因某些原因无法正常工作

只是试图删除所有文件,并做到了这一点:

http://localhost:8983/solr/update?stream.body=%3Cdelete%3E%3Cquery%3E*:*%3C/query%3E%3C/delete%3E
Run Code Online (Sandbox Code Playgroud)

然后承诺:

http://localhost:8983/solr/update?stream.body=%3Ccommit/%3E
Run Code Online (Sandbox Code Playgroud)

我收到了回复:

<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">17</int>
</lst>
</response>
Run Code Online (Sandbox Code Playgroud)

但是当我搜索时,我仍然会得到结果.

我做错了什么?

java search solr

27
推荐指数
3
解决办法
2万
查看次数

Solr可以加载原始Lucene索引吗?

我的一些同事有一个大型的Java Web应用程序,它使用了一个用Lucene Java构建的搜索系统.我想做的是有一个很好的基于HTTP的API来访问那些现有的搜索索引.我之前使用过Nutch,并且非常喜欢OpenSearch实现如何简单地将结果作为RSS获取.

我已经尝试在solrconfig.xml中设置Solr的dataDir,希望它能很好地获取现有的索引文件,但它似乎只是忽略它们.

我的主要问题是:

Solr可以用来访问其他地方创建的Lucene索引吗?或者可能有更好的解决方案?

lucene api search solr

27
推荐指数
2
解决办法
9268
查看次数

Solr:如何拒绝记录

好了,我很高兴Solr的,但我似乎无法弄清楚如何调低日志记录级别,使其实际运行足够快,当我做一个巨大的进口运行.

我甚至不确定它正在使用哪个日志框架(因为,你知道,java.util.logging,log4jcommons-logging 都不够,我们需要将slf4j添加到混合中!)好抱歉,不得不让那个轻微的咆哮.:-)

所以我src/main/resources/log4j.properties配置了:

log4j.rootLogger=WARN, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%5p [%t] (%F:%L) - %m%n
org.apache.solr.core=WARN
org.apache.solr.update.processor=WARN
Run Code Online (Sandbox Code Playgroud)

然后,我已经src/main/resources/logging.properties配置了以下好的措施:

.level = WARNING

com.gwtstore.level=ALL
com.appgravity.level=ALL
org.apache.solr.core.level=WARNING
org.apache.solr.update.processor.level=WARNING
Run Code Online (Sandbox Code Playgroud)

然而不知何故,我仍然看到以下吨:

INFO: {add=[-7757828706308755634]} 0 0
Feb 21, 2011 6:12:23 PM org.apache.solr.core.SolrCore execute
INFO: [] webapp=null path=/update params={} status=0 QTime=0 
Run Code Online (Sandbox Code Playgroud)

这是我的类路径:

src/test/resources
src/test/java
src/main/resources
src/main/java
idea_rt.jar
junit-rt.jar
deploy.jar
dt.jar
javaws.jar
jce.jar
jconsole.jar
management-agent.jar
plugin.jar
sa-jdi.jar
alt-rt.jar
charsets.jar
classes.jar
jsse.jar
ui.jar
apple_provider.jar
dnsns.jar …
Run Code Online (Sandbox Code Playgroud)

java logging solr slf4j

26
推荐指数
1
解决办法
2万
查看次数

MongoDB设置的全文搜索选项

我们计划在MongoDB中存储数百万个文档,非常需要全文搜索.我读过Elasticsearch和Solr是全文搜索的最佳解决方案.

  • 弹性搜索是否足够成熟,可用于Mongodb全文搜索?我们也在收集分类.Elasticsearch是否适用于Sharded集合?

  • 使用Elasticsearch或Solr有哪些优缺点?

  • MongoDB能够进行全文搜索吗?

solr mongodb elasticsearch

26
推荐指数
4
解决办法
2万
查看次数

solrj api用于部分文档更新

Solr 4 beta已经发布,GA版本将很快推出.部分文档更新已经存在了一段时间,如下所述:http://solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/

但是,我还没想出如何用solrj api做到这一点.

有谁知道solrj是否可行?或者solrj是不是没有达到这个功能的速度?

更新:正如我在邮件列表中所描述的那样(请参阅此处的回复),我发现在solrj api中,SolrInputField的值可以是一个映射 - 它不必是一个简单的标量值.如果是地图,solrj会update在字段的xml元素中添加一个附加属性.例如,这段代码:

SolrInputDocument doc = new SolrInputDocument();
Map<String, String> partialUpdate = new HashMap<String, String>();
partialUpdate.put("set", "foo");
doc.addField("id", "test_123");
doc.addField("description", partialUpdate);
Run Code Online (Sandbox Code Playgroud)

产生这个文件:

<doc boost="1.0">
    <field name="id">test_123</field>
    <field name="description" update="set">foo</field>
</doc>
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我为这个附加属性使用了"set"这个词,但它不起作用.Solr不像我预期的那样更新字段.根据此链接:http: //solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/ 有效值为"set"和"add".

任何的想法?

solr solrj

26
推荐指数
1
解决办法
2万
查看次数

成功执行后,我的nodejs脚本没有自行退出

我从db表和solr读取数据后编写了一个脚本来更新我的db表.我正在使用asyn.waterfall模块.问题是成功完成所有操作后脚本不会退出.我已经使用了数据库连接池,也认为可能会创建无限期等待的脚本.我想把这个脚本放在crontab中,如果它不能正常退出,它将不必要地创建大量的实例.

mysql scripting solr node.js

26
推荐指数
5
解决办法
2万
查看次数

如何在SOLR中创建字符串字段的不区分大小写的副本?

如何以不区分大小写的形式创建字符串字段的副本?我想使用典型的"字符串"类型和不区分大小写的类型.类型的定义如下:

    <fieldType name="string" class="solr.StrField"
        sortMissingLast="true" omitNorms="true" />

    <!-- A Case insensitive version of string type  -->
    <fieldType name="string_ci" class="solr.StrField"
        sortMissingLast="true" omitNorms="true">
        <analyzer type="index">
            <tokenizer class="solr.KeywordTokenizerFactory"/>           
            <filter class="solr.LowerCaseFilterFactory" />
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.KeywordTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory" />
        </analyzer>
    </fieldType> 
Run Code Online (Sandbox Code Playgroud)

像这样的领域的一个例子:

<field name="destANYStr" type="string" indexed="true" stored="true"
    multiValued="true" />
<!-- Case insensitive version -->
<field name="destANYStrCI" type="string_ci" indexed="true" stored="false" 
    multiValued="true" />
Run Code Online (Sandbox Code Playgroud)

我试过像这样使用CopyField:

<copyField source="destANYStr" dest="destANYStrCI" />
Run Code Online (Sandbox Code Playgroud)

但是,显然在调用任何分析器之前会在源和目标上调用CopyField,所以即使我通过分析器指定了dest不区分大小写,也会保留从源字段复制的值的大小写.

我希望在创建记录时避免从客户端重新传输字段中的值.

solr case-insensitive

25
推荐指数
2
解决办法
3万
查看次数

分面搜索(solr)vs通过PHP进行良好的旧过滤?

我打算在我的电子商务商店中设置过滤系统(优化搜索).你可以在这里看到一个例子:http://www.bettymills.com/shop/product/find/Air+and+HVAC+Filters

PrestaShop,OpenCart和Magento等平台拥有所谓的分层导航.

我的问题是,与使用Solr或Lucene之类的东西进行分面导航相比,Magento或PrestaShop等平台中的分层导航有什么区别.

可以通过php和mysql完成类似的结果吗?

非常感谢详细解释.

php solr magento faceted-search layered-navigation

25
推荐指数
1
解决办法
1万
查看次数

Solr:如何删除集合?

我正在使用solr 4.9,不添加任何额外的碎片,只需使用它附带的任何默认值.我创建了一个集合,并尝试使用以下api删除它:

http://<host>/solr/admin/collections?action=DELETE&name=collectionName
Run Code Online (Sandbox Code Playgroud)

但它返回错误:

Solr实例未在SolrCloud模式下运行

我的Solr不是solrCloud,但如何删除我的收藏?

solr

25
推荐指数
4
解决办法
5万
查看次数