gpt4 book ai didi

java - Facet 字段值使用字谜多次返回相同的值

转载 作者:行者123 更新时间:2023-12-02 03:43:14 27 4
gpt4 key购买 nike

我正在尝试从 solr 获取字段的唯一值。我已经使用facet来获取字段值。我的方面查询参数看起来像 -

        SolrQuery query = new SolrQuery();
query.setQuery("*:*");
query.setFacet(true);
query.addFacetField("division");

我正在使用打印构面值-

resp = solrClient.query(query);

List<FacetField> fflist = resp.getFacetFields();
for(FacetField ff : fflist){
String ffname = ff.getName();

int ffcount = ff.getValueCount();

System.out.println(ffname+" "+ffcount);
List<Count> counts = ff.getValues();
for(Count c : counts){
String facetLabel = c.getName();
long facetCount = c.getCount();

System.out.println("facetlabel-->"+facetLabel+" facetcount-->"+facetCount);
}
}

我收到以下回复 -

facetlabel-->seirossecca facetcount-->184
facetlabel-->accessori facetcount-->184
facetlabel-->seirossecca facetcount-->184
facetlabel-->cinht facetcount-->116
facetlabel-->cinht facetcount-->116
facetlabel-->ethnic facetcount-->116
facetlabel-->spot facetcount-->851
facetlabel-->spot facetcount-->851
facetlabel-->top facetcount-->851
facetlabel-->raewtoof facetcount-->577
facetlabel-->footwear facetcount-->577
facetlabel-->raewtoof facetcount-->577
facetlabel-->smottob facetcount-->387602
facetlabel-->bottom facetcount-->387602
facetlabel-->smottob facetcount-->387602
facetlabel-->ytuaeb facetcount-->354158
facetlabel-->beauti facetcount-->354158
facetlabel-->ytuaeb facetcount-->354158
facetlabel-->scinortcel facetcount-->204244
facetlabel-->electron facetcount-->204244
facetlabel-->scinortcel facetcount-->204244
facetlabel-->sesserd facetcount-->161
facetlabel-->dress facetcount-->161
facetlabel-->sesserd facetcount-->161

正如您所看到的,我得到了带有单独条目的分面字段的字谜,但相应的字段值是相同的。除法的类型是-

text_search

schema.xml 中的文本搜索定义是 -

<fieldType name="text_search" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true" multiValued="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ReversedWildcardFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory" splitOnNumerics="0" generateWordParts="1" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="1" splitOnCaseChange="0" preserveOriginal="1"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.ReversedWildcardFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory" splitOnNumerics="0" generateWordParts="1" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="1" splitOnCaseChange="0" preserveOriginal="1"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>

最佳答案

这是因为您正在使用ReversedWildcardFilterFactory

ReversedWildcardFilterFactory:反转 token 的过滤器。

同样的事情也发生在你身上..

seirosseccaaccessories 相反由于 PorterStemFilterFactory 删除了单词中的常见结尾,accessories 被缩短为 accessori

为了避免这种情况,您可以从 schema.xml 中删除 ReversedWildcardFilterFactory

PorterStemFilterFactory :

如果你想从单词中删除常见的结尾,就留给你了。

关于java - Facet 字段值使用字谜多次返回相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36595402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com