我正在使用Apache Solr的4.4版本.如Solr文档中所述
Run Code Online (Sandbox Code Playgroud)<fieldType name="text_keyword" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.KeywordRepeatFilter"/> <filter class="solr.PorterStemFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> </fieldType>
我正在使用上面的代码.但是,由于我收到错误,"KeywordRepeatFilter"似乎存在一些问题
org.apache.solr.common.SolrException:[schema.xml] fieldType"text_keyword"的插件初始化失败:[schema.xml] analyzer/filter的插件初始化失败:在org.apache中加载类'solr.KeywordRepeatFilter'时出错. solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:177)位于org.apache.solr.schema.IndexSchema的org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:467).(IndexSchema.java :164)at org.apache.solr.schema.IndexSchemaFactory.create(IndexSchemaFactory.java:55)
但是当我删除solr.KeywordRepeatFilter行时,一切似乎都运行正常.任何人都可以告诉我有什么问题.是否从Solr 4.4中删除了"solr.KeywordRepeatFilter"?
我试图迫使Solr在白色空格,逗号:和;.上标记文档 .与SQL Server全文搜索类似的东西.如果我使用text_general字段然后它标记其他字符也像('/','\','-')我尝试使用
<tokenizer class="solr.PatternTokenizerFactory" pattern="\s*,:;\s*"/>
Run Code Online (Sandbox Code Playgroud)
但它没有标记它.这是我的FieldType样子:
<fieldType name="text_sqlserver" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.PatternTokenizerFactory" pattern="\s*,:;\s*"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.PatternTokenizerFactory" pattern="\s*,:;\s*"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
有什么我想念的吗?我也必须搜索不区分大小写的比较.
我想使用Solr模式中建议的luke处理程序,如何获取集合中的动态字段,即http:// solr:8983/solr/admin/luke?numTerms = 0
但4.10.3 solrconfig.xml有以下条目,表示luke已被转入/ admin /,我应该可以使用http:// localhost:8983/solr/admin路径,这给我一个404错误.
<requestHandler name="/admin/"
class="solr.admin.AdminHandlers" />
<!-- This single handler is equivalent to the following... -->
<!--
<requestHandler name="/admin/luke" class="solr.admin.LukeRequestHandler" />
<requestHandler name="/admin/system" class="solr.admin.SystemInfoHandler" />
<requestHandler name="/admin/plugins" class="solr.admin.PluginInfoHandler" />
<requestHandler name="/admin/threads" class="solr.admin.ThreadDumpHandler" />
<requestHandler name="/admin/properties" class="solr.admin.PropertiesRequestHandler" />
<requestHandler name="/admin/file" class="solr.admin.ShowFileRequestHandler" >
-->
Run Code Online (Sandbox Code Playgroud)
当我查找LukeRequestHandler文档时,我找到了http://lucene.apache.org/solr/4_4_0/solr-core/org/apache/solr/handler/admin/LukeRequestHandler.html,希望我正在构建一个java应用程序,我不是.
我试图在网址中找到几种方法,其中所有方法都是404.
除了"如何查询luke处理程序以获取索引数据"之外,"这是我正在试图找出的正确文档吗?".
任何帮助理解(这些)java文档如何与我试图理解Solr如何从url工作将非常感激.
我无法在Solr Cloud中创建名为“ testCollection”的集合。
网址:: 8080 / solr / admin / collections?action = CREATE&name = testCollection
回应:
<str name="Operation create caused exception:">
org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: No config set found to associate with the collection.
</str>
Run Code Online (Sandbox Code Playgroud)
根据文档:(https://cwiki.apache.org/confluence/display/solr/Collections+API#CollectionsAPI)用于创建收集API,"collection.configName"不是必填字段。如果未提供,Solr将默认使用集合名称作为配置名称。
为什么我仍然面临这个问题?
是否必须使用collection.configName?
如何在Zookeeper上找到关联的collection.configName?
我已经在服务器上安装并配置了Solr4和tomcat6.它工作得很好,但是当我尝试构建DIH(数据导入处理程序)时,它给了我一个错误,我无法解决.
我将以下代码添加到我的solrconfig.xml文件中
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">/path/to/data-config.xml</str>
</lst>
Run Code Online (Sandbox Code Playgroud)
我的data-config.xml文件如下所示
<dataConfig>
<dataSource type="FileDataSource" />
<document>
<entity name="f" processor="FileListEntityProcessor" baseDir="/path/to/basedirectory/toxmlfiles/" fileName=".*xml" recursive="true" rootEntity="false" dataSource="null">
<field column="plainText" name="text"/>
</entity>
</document>
Run Code Online (Sandbox Code Playgroud)
我点击localhost时在浏览器上遇到的错误:8080/solr /
我的错误日志中的错误是
SEVERE: Unable to create core: collection1
org.apache.solr.common.SolrException: RequestHandler init failure
at org.apache.solr.core.RequestHandlers.initHandlersFromConfig(RequestHandlers.java:168)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:657)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:566)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:850)
at org.apache.solr.core.CoreContainer.load(CoreContainer.java:534)
at org.apache.solr.core.CoreContainer.load(CoreContainer.java:356)
at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:308)
at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:107)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3838)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4488)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498) …Run Code Online (Sandbox Code Playgroud) 我有一小组查询和实体,即使性能非常差,我只想知道我可以做些什么技巧和配置来提高性能?
注意我正在使用Solr 4.1.
如何配置健康检查?
什么是Solr 4中的Healthcheck文件?它是如何使用的?我正在配置Solr Cloud并找到该文件的引用,该文件应该在那里,但没有找到任何示例配置.
任何关于如何使用它的链接/文章/示例都非常感谢.
谢谢
我正在为我们的网站开发产品过滤器,但在使用“facet.missing = true”时遇到了一些困难。
我知道我应该使用像“fq=-facetField:[* TO *]”这样的查询过滤器来将结果过滤到缺少该字段的产品。
我为我的应用程序构建了一个全局过滤器助手,它为所有查询动态构建 fq 参数,以防止任何人错过基于用户权限的过滤器,它基本上如下所示(php):
$params['fq'] = sprintf('((%s) AND (%s))', $custom, $system);
Run Code Online (Sandbox Code Playgroud)
其中 $system 是基于全局权限的过滤器,它可能看起来像(不是实际但相似):
(isdiscontinued:0 AND ishidden:0 AND contract:3)
Run Code Online (Sandbox Code Playgroud)
$custom 包含用户通过 UI 构建的实际过滤器查询。假设笔记本蓝牙过滤器的名称为 fq_bluetooth,其值为:No、Yes 或值丢失。这将使最终的 fq 看起来像:
((-fq_bluetooth:[* TO *]) AND ((isdiscontinued:0 AND ishidden:0 AND contract:3)))
Run Code Online (Sandbox Code Playgroud)
但是,这会为我为此类别发送的查询返回 0 个产品。
如果我将过滤器查询修改为:
((fq_bluetooth:[* TO *]) AND ((isdiscontinued:0 AND ishidden:0 AND contract:3)))
Run Code Online (Sandbox Code Playgroud)
然后我得到了 Yes + No 计数的预期结果,不考虑未指定的。
我应该如何格式化过滤器查询以使其正常工作?
[编辑]
我可能还想结合这些方面,并且可能只过滤没有蓝牙的产品或未指定蓝牙的产品。所以也许像这样(当然这也不起作用):
((-fq_bluetooth:[* TO *] OR fq_bluetooth:"No") AND ((isdiscontinued:0 AND ishidden:0 AND contract:3)))
Run Code Online (Sandbox Code Playgroud)
我注意到 debugQuery 打开,我看到一个过滤器查询,如:
fq_bluetooth:("No" OR -[* TO …Run Code Online (Sandbox Code Playgroud) 我想用PHP Solarium更新Apache Solr 4.0中的文档部分,而不是更新整个文档.我知道它在Solr中的可能性(Solr中的文档),我无法找到有关如何在日光浴室中执行此操作的任何文档.所有现有的Solarium文档都指向我更新整个文档,这是有问题的和不必要的.
我正在从Solr 4.6.0迁移到5.4.0.我们选择使用旧的schema.xml而不是使用managed_schema,因为我们有相当多的copyField.启动solr服务器,我们收到此错误:
[schema.xml] fieldType"text_general"的插件初始化失败:[schema.xml]分析器/过滤器的插件初始化失败:实例化类的错误:'org.apache.lucene.analysis.core.StopFilterFactory'
在谷歌上,我们看到StopFilterFactory尚未弃用.可能是什么问题呢?
此外,还没有关于如何在Solr5中使用Solr4架构的全面指南.有什么建议?
谢谢
我有一些数据库ID.我试图运行查询以找出相应的节点,但它不起作用.告诉我如何使用Database ID编写正确的查询?
有没有办法构造一个查询,以便它可以识别/返回特定字段重复的文档。我正在寻找的是 SQL 中的等效项:
SELECT content, count(*) FROM documents GROUP BY content ORDER BY count(*) DESC
Run Code Online (Sandbox Code Playgroud)
基本上,给我内容相同的文件。我发现的所有内容都讨论了如何在插入时丢弃重复项,或者如何在搜索结果中删除它们。我尝试使用FieldCollapsing,但出现以下错误:
"error": {
"msg": "can not use FieldCache on a field which is neither indexed nor has doc values: content",
"code": 400
}
Run Code Online (Sandbox Code Playgroud)
基于错误,我认为它失败了,因为content没有编入索引。我尝试使用另一个索引而不是多值的字段来进行分组,该字段存储文档 URL,但我无法对结果组进行正面或反面,尤其是groupValue. 我可以尝试创建一个被索引的复制字段,但我不确定这是否会给我我正在寻找的东西,我的爬虫需要超过 24 小时才能爬行。
我必须执行以下操作:
Solr 7.4.0 和 Zookeeper 版本: 3.4.12
我做了以下事情:
设置动物园管理员:
./zkServer.sh start设置 Solr:
使用以下命令启动 Solr:
./solr start -cloud -s /home/demo/LocalFolder/Downloads/SolrHome -p 8987 -z localhost:2181
尝试使用以下方式在 Zookeeper 中上传配置:
./solr create -c mycollection -d /media/sf_VM/Dump/conf
它给了我一个例外:
Caused by: javax.servlet.UnavailableException: Error processing the request. CoreContainer is either not initialized or shutting down.
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:341)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:323)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at …Run Code Online (Sandbox Code Playgroud)