我是SOLR的新手,這是我在此列表中的第一篇文章。 我一直在解決這個問題幾天。我嘗試了我在谷歌中找到的所有東西,但看起來像我缺少一些東西。搜索令牌不會返回任何結果
這裏是我的問題: 我都稱爲一個字段:DBASE_LOCAT_NM_TEXT它包含諸如值:CRD_PROD我們的目標是能夠要麼是把確切的字符串「CRD_PROD」或它的一部分來搜索這個領域(由記號化「 _「)像‘CRD’或‘PROD’
目前: 該查詢返回的結果:q = DBASE_LOCAT_NM_TEXT:CRD_PROD但這並不:q = DBASE_LOCAT_NM_TEXT:CRD我想知道爲什麼第二個查詢不返回任何結果
以下是我如何配置該字段:
<field name="DBASE_LOCAT_NM_TEXT" type="text_general" indexed="true" stored="true" required="false" multiValued="false"/>
,這裏是我如何配置的字段類型:
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<filter class="solr.WordDelimiterFilterFactory" preserveOriginal="1" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<filter class="solr.WordDelimiterFilterFactory" preserveOriginal="1" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
我也是用在SOLR管理控制檯分析面板。它示出了這一點: WT CRD_PROD
WDF CRD_PROD CRD PROD CRDPROD
SF CRD_PROD CRD PROD CRDPROD
LCF crd_prod CRD PROD crdprod
SKMF crd_prod crd 督促 crdprod
RDTF crd_prod CRD 督促 crdprod
我不知道這是否是相關或不相關,但該指數使用使用Lucene接口的Java程序創建的。它使用StandardAnalyzer進行編寫,並將該字段配置爲標記,索引和存儲。這會影響SOLR配置嗎?
你能幫我理解我缺少什麼以及如何進行調試嗎?
感謝, Yetkin
是的。這是Java程序。 – user3593000