Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr索引时间标记器/筛选器未按预期工作?_Solr_Lucene - Fatal编程技术网

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... <

我正在使用我的公司早些时候设置的solr实例,但它似乎没有正确设置。我可以搜索像
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”哦,捕捉得好。我完全忽略了这一点。我想是被“存储”字段迷住了。谢谢你!哦,接得好。我完全忽略了这一点。我想是被“存储”字段迷住了。谢谢你!