gpt4 book ai didi

java - 使用多个字段对 solr 搜索结果进行排序

转载 作者:行者123 更新时间:2023-11-30 03:13:50 24 4
gpt4 key购买 nike

我在 solr 文档中有五个字段。

 startDate---> Date type
endDate----> Date type
name -----> string type
location ----> string type
publishDate ----> Date type

现在我想按此顺序对该文档进行排序

  1. 首先我想以 startDate 为基础
  2. 如果开始日期相同则结束
  3. 如果开始日期和结束日期相同,则名称
  4. 如果开始、结束、名称相同,则位置等等......

我正在使用 solrj api,为此我正在使用

          solrQuery.setSort("startdate", SolrQuery.ORDER.asc)
solrQuery.addSort("enddate", SolrQuery.ORDER.asc)
solrQuery.addSort("name", SolrQuery.ORDER.asc)
solrQuery.addSort("location", SolrQuery.ORDER.asc)
solrQuery.addSort("publish_date", SolrQuery.ORDER.asc)

但它不起作用,请帮忙

       schema.xml:
<field name="startdate" type="tdate"
indexed="true" stored="true"/>
<field name="enddate" type="tdate" indexed="true" stored="true"/>
<field name="publish_date" type="tdate" indexed="true"
stored="true"/>
<field name="location" type="text_general_edge_nGram"
indexed="true" stored="true"/>

<fieldType name="tdate" class="solr.TrieDateField"
precisionStep="6" positionIncrementGap="0"/>
<fieldType name="text_general_edge_nGram" class="solr.TextField"
positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2"
maxGramSize="30" side="front" luceneMatchVersion="4.3"/>

</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory"
synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

最佳答案

我认为它来自你的分词器,它产生一个多值字段。除非您使用生成单个术语的分析器,否则您将无法对该字段进行排序。

https://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters

http://atpatil.blogspot.fr/2014/07/Solr-sort-strings.html

difference between StandardTokenizerFactory and KeywordTokenizerFactory in SoLR

关于java - 使用多个字段对 solr 搜索结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33075282/

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