0
我有下面的定義字段,我工作完美的分析,但是當我試圖以這種方式查詢它,查詢分析行爲不同。我錯過了什麼?Solr ShingleFilterFactory查詢分析不worikng
數據: thd_keyphrase:總部設在加州的私人公司,社會媒體,私人持有的公司
查詢: Q = thd_keyphrase:找到任何社交媒體
在分析結果中,被處理這種方式:|找到任何|任何社會|社會媒體
和它匹配社交媒體
從調試查詢輸出是sifferent:
"rawquerystring": "thd_keyphrase:find any social media",
"querystring": "thd_keyphrase:find any social media",
"parsedquery": "thd_keyphrase:find text:ani text:social text:media",
"parsedquery_toString": **"thd_keyphrase:find text:ani text:social text:media",**
,或者當我刪除默認的字段文本:「味精」:「在查詢中指定字段名,沒有通過‘DF’PARAM指定的默認」,
<fieldType name="keyphrase" class="solr.TextField" omitNorms="false" termVectors="false" multiValued="false">
<analyzer type="index">
<tokenizer class="solr.PatternTokenizerFactory" pattern="\s*,\s*"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ShingleFilterFactory" minShingleSize="2" maxShingleSize="5"
outputUnigrams="false" outputUnigramsIfNoShingles="true" tokenSeparator=" "/>
<!-- <filter class="solr.KeepWordFilterFactory" words="keepwords.txt" ignoreCase="true" enablePositionIncrements="false"/>-->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
</types>
我試過這個......它適用於「社交媒體」,對於「查找任何社交媒體」,它只生成一個令牌......但我想將整個查詢標記爲這些令牌|查找任何|任何社交|社交媒體 – Babu
在ShingleFilterFactory中將您的maxShingleSize更改爲2. – user2630270
Thas不是問題...數據中可能會有更大的短語...例如「Place in Europe Europe」...我希望能夠解析查詢「什麼是北歐最好的地方?」 ...非常令人困惑的是,在分析中它工作正常,它創造了帶狀皰疹和最大的匹配短語......但是當我嘗試它作爲查詢時,它試圖在默認字段中查找......也許我錯過了某些東西查詢,但它只是不應該在默認情況下搜索時,我明確地說,查看thd_keyphrase ...我是對嗎? – Babu