我的索引中有一些项目(Solr.4.4),其中包含名称Foobar 135g,其中135g指的是一些权重.搜索foobar或foobar 135工作,但当我尝试搜索确切的短语时foobar 135g,找不到任何内容.
我在solr管理面板"分析"中分析了查询.这里一切都很好看.这些字段被正确编入索引,查询被正确分割,我得到了点击(由令牌上的紫色背景表示).
但是我在索引和/或查询时处理字符串的方式必然存在问题.所以这是字段定义,我正在使用:
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory" catenateWords="1" catenateAll="1" preserveOriginal="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="30"/>
<filter class="solr.ReverseStringFilterFactory" />
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="30"/>
<filter class="solr.ReverseStringFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory" catenateWords="1" catenateAll="1" preserveOriginal="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
我正在使用两者的ReverseStringFilterFactory's EdgeNGramFilterFactory能够搜索foob和for bar或obar(出现在项目名称末尾的字符串).首先,我认为,它有事情做与WordDelimiterFilterFactory和catenateWords选项.但是这个选项对数字没有任何作用(我是对的吗?).
在阅读文档(http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters)后,我发现了generateNumberParts …
我有Solr 4.10,我有它的集合,其solorconfig.xml值<luceneMatchVersion>如下:
<luceneMatchVersion>4.7</luceneMatchVersion>
Run Code Online (Sandbox Code Playgroud)
它是否正确?我看到了其他具有价值的例子,比如LUCENE_35我还需要知道什么,我怎样才能LUCENE_xx从我目前的Solr版本中表达出来?
有没有办法检查每个字段的 solr 索引大小?
我们有一个 170G 的大索引大小,我们想弄清楚哪个字段填充了索引大小。
如何将 Apache solr 从现有版本 4.10.4 升级到 6.6.0(最新版本)在 linux centos 7 操作系统上。
我正在尝试配置Solr 4以使用UUID,到目前为止我没有成功
通过阅读文档,我看到了两种不同的方法来配置schema.xml以使用UUID(两者都不起作用)
对于我需要写的两个
<fieldType name="uuid" class="solr.UUIDField" indexed="true" />
Run Code Online (Sandbox Code Playgroud)
选项1:添加:
<field name="id" type="uuid" indexed="true" stored="true" default="NEW" multiValued="false"/>
Run Code Online (Sandbox Code Playgroud)
并确保删除该行
<uniqueKey>id</uniqueKey>
Run Code Online (Sandbox Code Playgroud)
选项2添加:
<field name="id" type="uuid" indexed="true" stored="true" required="true" multiValued="false" />
Run Code Online (Sandbox Code Playgroud)
这两个选项都无法正常工作并返回org.apache.solr.common.SolrException:org.apache.solr.common.SolrException:初始化QueryElevationComponent时出错.
我还尝试使用配置向colrconfig.xml文件添加一行:
<updateRequestProcessorChain name="uuid">
<processor class="solr.UUIDUpdateProcessorFactory">
<str name="fieldName">uniqueKey</str>
</processor>
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
Run Code Online (Sandbox Code Playgroud)
谢谢,
西蒙
我们构建了庞大的应用程序,因为用户数量很高,这是最好的选择,对我们的应用程序很有用,需要提供对应用程序的无中断支持.
Solr复制好吗?Solr Sharding是好的吗?
我的停用词没有按预期工作。这是我的架构的一部分:
<fieldType name="text_general" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType class="solr.TextField" name="text_auto">
<analyzer type="index">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="false"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="3" outputUnigrams="true" outputUnigramsIfNoShingles="false"/>
</analyzer>
<analyzer type="query">
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="false"/>
</analyzer>
</fieldType>
<field name="deal_title_terms" type="text_auto" indexed="true" stored="false" required="false" multiValued="true"/>
<field name="deal_description" type="text_general" indexed="true" stored="true" required="false" multiValued="false"/> …Run Code Online (Sandbox Code Playgroud) 这是针对 Sitecore 7.5 - Solr 4.7 实现的。我希望能够修改存储在 Solr 的 _content 字段中的文本。我相信,Sitecore 以某种方式聚合了索引中 _content 字段中某个项目的所有内容字段。(我认为这是正确的)在索引时,我希望能够编写自己的代码,该代码可能会修改存储在 Solr 的 _content 字段中的文本。这可能吗?任何想法我会怎么做?
我正在使用 SOLR 搜索进行 Magento 搜索,搜索时遇到一些问题。请看图片。
在我的产品描述中,我有一些 html 标签。因此,当我们搜索时,html标签也会自动建议,而无需特殊字符。有没有可能消除这里的html标签?
在我的 Django html 模板中,我使用 haystack 以“2015-01-01T00:00:00Z”格式获取我的 SOLR facet_date 结果。如何在模板中以“01/01/2015”格式解析它?我的模板是
{{ facets.dates.created.start }}
Run Code Online (Sandbox Code Playgroud)
我应该在模板中添加什么“|date:”选项?谢谢!
solr4 ×10
solr ×8
lucene ×2
centos7 ×1
django ×1
indexing ×1
magento ×1
magento-1.4 ×1
python ×1
replication ×1
search ×1
sharding ×1
sitecore ×1
sitecore7.5 ×1
solr6 ×1
solrcloud ×1
solrj ×1
stop-words ×1
sunspot ×1
sunspot-solr ×1
tokenize ×1
upgrade ×1