Solr索引时间标记器/筛选器未按预期工作?
我正在使用我的公司早些时候设置的solr实例,但它似乎没有正确设置。我可以搜索像Solr索引时间标记器/筛选器未按预期工作?,solr,lucene,Solr,Lucene,我正在使用我的公司早些时候设置的solr实例,但它似乎没有正确设置。我可以搜索像q=*Paper*这样的东西来获得结果,但不能搜索Paper 似乎索引时间标记器/过滤器没有像我预期的那样工作 schema.xml设置为标记化,然后在此描述字段上不区分大小写地索引和查询,例如: <field name="S_DSC" type="string_search" indexed="false" stored="true" required="false"/> ...etc... <
q=*Paper*
这样的东西来获得结果,但不能搜索Paper
似乎索引时间标记器/过滤器没有像我预期的那样工作
schema.xml
设置为标记化,然后在此描述字段上不区分大小写地索引和查询,例如:
<field name="S_DSC" type="string_search" indexed="false" stored="true" required="false"/>
...etc...
<fieldType name="string_search" class="solr.TextField">
<analyzer type="index">
<!--Split at whitespaces and at punctuations. Strip other special characters.-->
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<!--Plural words handling. 'dogs'='dog'. Stemming not recommended. dry 'erase' board is not the same as dry board 'eraser'-->
<filter class="solr.EnglishMinimalStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishMinimalStemFilterFactory"/>
</analyzer>
</fieldType>
当我查询q=*
时,我会得到结果
select?q=*&rows=10&start=0&wt=json
"docs": [
{
"S_DSC": "Foo 8.5\" x 11\" Copy Paper, 20 lbs, 92 Brightness, 5000/Carton (123456)"
...etc...
},
但是如果我尝试搜索描述中的某个术语(S_DSC),我不会得到结果,除非它区分大小写,并且我在它周围加上星号
我得到了q=*论文的结果*
"parsedquery": "(+DisjunctionMaxQuery((combined_search:*paper* | PN:*Paper*^15.0 | S_DSC:*paper*^10.0 | C_PN:*Paper*^20.0 | BRD:*Paper*^2.0 | M_PN:*Paper*^5.0 | DIM_NM:*Paper*^2.0 | C_S_DSC:*paper*^10.0)))/no_coord",
q=纸张无结果
"parsedquery": "(+DisjunctionMaxQuery((combined_search:paper | PN:paper^15.0 | S_DSC:paper^10.0 | C_PN:paper^20.0 | BRD:paper^2.0 | M_PN:paper^5.0 | DIM_NM:paper^2.0 | C_S_DSC:paper^10.0)))/no_coord",
"parsedquery": "(+DisjunctionMaxQuery((combined_search:paper | PN:Paper^15.0 | S_DSC:paper^10.0 | C_PN:Paper^20.0 | BRD:Paper^2.0 | M_PN:Paper^5.0 | DIM_NM:Paper^2.0 | C_S_DSC:paper^10.0)))/no_coord",
q=纸张无结果
"parsedquery": "(+DisjunctionMaxQuery((combined_search:paper | PN:paper^15.0 | S_DSC:paper^10.0 | C_PN:paper^20.0 | BRD:paper^2.0 | M_PN:paper^5.0 | DIM_NM:paper^2.0 | C_S_DSC:paper^10.0)))/no_coord",
"parsedquery": "(+DisjunctionMaxQuery((combined_search:paper | PN:Paper^15.0 | S_DSC:paper^10.0 | C_PN:Paper^20.0 | BRD:Paper^2.0 | M_PN:Paper^5.0 | DIM_NM:Paper^2.0 | C_S_DSC:paper^10.0)))/no_coord",
难道不应该先标记上面的S_DSC,然后再将标记小写吗?(因此,纸张
就在其中?)
我错过了什么?欣赏您的见解:)您的
S\u DSC
字段没有索引:
<field name="S_DSC" type="string_search" --> indexed="false" <--
index=“false”您的S\u DSC
字段未编制索引:
<field name="S_DSC" type="string_search" --> indexed="false" <--
indexed=“false”哦,捕捉得好。我完全忽略了这一点。我想是被“存储”字段迷住了。谢谢你!哦,接得好。我完全忽略了这一点。我想是被“存储”字段迷住了。谢谢你!