如何查询所有(或前缀)字段名称的solr实例?
我想使用动态字段
category_0_s
category_1_s
...
Run Code Online (Sandbox Code Playgroud)
但我不知道有多少可能存在.所以我想检索所有字段(最好使用前缀"category_").
有任何想法吗?谢谢
我正在使用apache solr搜索引擎来索引我的网站数据库..
我正在使用django + http://haystacksearch.org/
所以,假设我的文件中有"鸡"字样
当我搜索"鸡"时 - solr可以找到这个文件
但是,当我搜索"小鸡"时 - 它没有找到任何东西..
有没有办法来解决这个问题 ?
我有一个相当简单的SOLR结构,它包含三个不同的领域:
id,文本和标签
在schema.xml我设置以下内容
<uniqueKey>id</uniqueKey>
<defaultSearchField>text</defaultSearchField>
<solrQueryParser defaultOperator="AND"/>
<copyField source="tags" dest="text"/>
Run Code Online (Sandbox Code Playgroud)
但是,当我搜索仅显示为标记的单词时,则找不到该文档.
我在这里的问题是:copyField描述的任何分析仪运行(索引和查询),作为前发生在这里查询分析器之前或刚?
编辑
分析仪def:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" preserveOriginal="1" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" language="German" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" preserveOriginal="1" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" language="German" /> …Run Code Online (Sandbox Code Playgroud) 任何人都知道为什么以及如何解决这个问题,因为我有一个非常繁忙的更新和搜索同时.
打开新搜索者时出错.
maxWarmingSearchers = 2超出限制,稍后再试
更新:我认为这个问题一般与solr语法有关,而不是特别是Chef.因此,当我遇到与Chef合作时,我认为任何与Solr一起工作的人也会遇到这个......
我正在开发一个与Chef服务器的搜索API进行通信的应用程序,以查找特定节点.
基于此http://docs.opscode.com/essentials_search.html#special-characters,似乎需要转义许多特殊字符.
注意:我只关注精确匹配模式,而不是通配符.我意识到其中一些字符是通配符的原因.
这是撰写本文时的列表,从上面的URL复制:
+ - && | | ! ( ) { } [ ] ^ " ~ * ? : \
Run Code Online (Sandbox Code Playgroud)
knife search但是,当我尝试使用这些字符的各种命令时,我会看到不一致的行为.
对于以下示例,我设置了一个标记有的节点 +&|!(){}[]^\"~*?:\\"
这些命令是从bash shell中的Linux机器上运行的:
$ knife search node 'tags:+&|!(){}[]^"~*?:\'
ERROR: knife search failed: invalid search query: 'tags:+&|!(){}[]^"~*?:\'
Run Code Online (Sandbox Code Playgroud)
这表现得如预期,因为没有任何东西被逃脱.现在,我\按照文档建议的方式逃避一切:
$ knife search node 'tags:\+\&\|\!\(\)\{\}\[\]\^\"\~\*\?\:\\'
ERROR: knife search failed: invalid search query: 'tags:\+\&\|\!\(\)\{\}\[\]\^\"\~\*\?\:\\'
Run Code Online (Sandbox Code Playgroud)
奇怪.
任何人都可以对此有所了解,也许可以建议一个能够匹配该标签的查询?
显然,任何人都不可能拥有包含所有这些特殊字符的属性,但我想更好地理解如何转义特殊字符.
谢谢!
我的客户没有预算来设置和维护SOLR服务器以在其生产环境中使用.如果我正确理解Sitecore 7内容搜索API,那么配置使用Lucene的东西并不是什么大问题.在大多数情况下,配置将类似,代码将相同,并且稍后可以交换SOLR服务器.
网站建设有
该网站有大约5,000页和不包括媒体库项目的组件.是否有任何关于简单使用Lucene的担忧?
主要问题是,在您的架构或设计阶段,您何时知道您应该选择SOLR而不是Lucene?引导您推荐的主要标志是什么?
我想从Apache Software Foundation 找到Solr的替代品.
对于那些不知道的人,Solr是一个企业搜索服务器.客户端应用程序使用类似于界面的Web服务来提交用于索引的文档以及执行搜索查询.Solr具有内置的其他功能,如缓存和复制.我相信它最初是由CNet开始的,然后是开源的.
我正在寻找可能被视为竞争对手的其他搜索服务器.
我们主要使用Angular作为搜索表单,这非常复杂.我们使用Solr作为搜索框架,并通过AJAX/JSONP获取我们的搜索结果,这非常有效.
每个搜索结果中都应该有一个图像,但是没有图像可能会发生.当我的搜索结果中没有img-URL时,我使用过滤器来防止Internet Explorer中令人讨厌的"X".
angular.module('solr.filter', []).
filter('searchResultImg', function() {
return function(input) {
if (typeof(input) == "undefined") {
return "http://test.com/logo.png";
} else {
return input;
}
};
});
Run Code Online (Sandbox Code Playgroud)
我的链接图像在源代码中如下所示:
<a href="{{doc.url}}"><img src="{{doc.image_url | searchResultImg}}"/></a>
Run Code Online (Sandbox Code Playgroud)
就像我说的那样,信息正确传递,我遇到的"问题"是Firebug向Angular src发送GET请求,如:
http://test.com/foldername/%7B%7Bdoc.image_url%20|%20searchResultImg%7D%7D
Run Code Online (Sandbox Code Playgroud)
链接已编辑,因此无法使用.其他顾客吓坏了;)
有没有人有这种行为的经验或知道更好的方法来设置src标签的过滤器?
我们正在使用solr4.3与主/从设置,今天我得到以下错误和solr停止响应.可能导致这种情况的原因,
Caused by: org.apache.solr.common.SolrException: Index locked for write for core XXX
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:821)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:618)
at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:949)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:984)
at org.apache.solr.core.CoreContainer$2.call(CoreContainer.java:597)
at org.apache.solr.core.CoreContainer$2.call(CoreContainer.java:592)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
... 1 more
Caused by: org.apache.lucene.store.LockObtainFailedException: Index locked for write for core XX at org.apache.solr.core.SolrCore.initIndex(SolrCore.java:484)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:745)
... 13 more
Run Code Online (Sandbox Code Playgroud) 我对solr不太熟悉.我成功安装了solr.它使用的是码头网络服务器.我的solr版本是4.10.3.管理员页面不受密码保护.任何人都可以访问它.我想在solr admin上应用paaword.我该怎么办?