gpt4 book ai didi

search - Solr 错误排序文本字段

转载 作者:行者123 更新时间:2023-12-04 01:34:02 25 4
gpt4 key购买 nike

我在 schema.xml 中有“text_general”字段

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/><filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

我已经存储了文件:
document1:
spell = "contro un indice generale dei prezzi salito del 2, 1%. Rincari ben piщ evidenti, tra i prodotti da bar"
testata = "Mattino di Padova (Il)"

document2:
spell="con i prodotti di qualitа vinco la crisi dei consumi Farinetti: con"
testata = "Italia Oggi"

document3
spell = "convenienza Il 2008 porta i primi aumenti nei pre zi L'Ipercoop cresce il listino"
testata = "Nuova Ferrara (La)"

“spell”和“testata”字段具有“text_general”类型。

搜索对我来说工作正常:
http://localhost:8080/solr/select?q={!type=edismax qf=spell v='co*'}

但是排序存在一些问题:
http://localhost:8080/solr/select?q={!type=edismax qf=spell v='co*'}&sort=testata desc

它返回给我这个结果:
    document1:
spell = "contro un indice generale dei prezzi salito del 2, 1%. Rincari ben piщ evidenti, tra i prodotti da bar"
testata = "Mattino di Padova (Il)"

document2:
spell="con i prodotti di qualitа vinco la crisi dei consumi Farinetti: con"
testata = "Italia Oggi"

document3
spell = "convenienza Il 2008 porta i primi aumenti nei pre zi L'Ipercoop cresce il listino"
testata = "Nuova Ferrara (La)"

我不明白为什么我的排序工作不正常。它应该像这样返回我的结果:
    document3
spell = "convenienza Il 2008 porta i primi aumenti nei pre zi L'Ipercoop cresce il listino"
testata = "Nuova Ferrara (La)"

document1:
spell = "contro un indice generale dei prezzi salito del 2, 1%. Rincari ben piщ evidenti, tra i prodotti da bar"
testata = "Mattino di Padova (Il)"

document2:
spell="con i prodotti di qualitа vinco la crisi dei consumi Farinetti: con"
testata = "Italia Oggi"

最佳答案

排序不适用于多值和标记化字段。
testata已定义为 text_general字段类型,它将被标记化,因此排序将无法正常工作。

Sorting can be done on the "score" of the document, or on any multiValued="false" indexed="true" field provided that field is either non-tokenized (ie: has no Analyzer) or uses an Analyzer that only produces a single Term (ie: uses the KeywordTokenizer)



来源: http://wiki.apache.org/solr/CommonQueryParameters#sort

使用 string作为字段类型并复制 title领域进入新领域。
<field name="testata_sort" type="string" indexed="true" stored="false"/>

<copyField source="testata" dest="testata_sort" />

关于search - Solr 错误排序文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7991885/

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