我有两个solr核心,一个叫做目录,另一个叫special_page。它包含来自同一个数据库的数据,不同之处在于目录包含的字段多于其他数据库(目录在solr 5中,特殊在solr 4中,是不同的solr版本)。
问题是,当我必须对这些特定数据进行排序时,例如。 id为1的special_page然后按product_scroring desc排序。这2个核心具有不同的结果顺序。
产品评分的目录架构:<field name="product_scoring" type="text_general" indexed="true" stored="true" multiValued="false" default=""/>
product_scoring的special_page架构:<field name="product_scoring" type="text_general" indexed="true" stored="true"/>
任何人都可以建议我是什么让这2核心产生相同的结果顺序?感谢
答案 0 :(得分:1)
如果您实际上正在为浮动值编制索引,请不要将它们编入索引作为文本。文本将基于多个分隔符将内容拆分为单独的标记,例如&#34;。&#34;和空白。根据您需要的确切值,使用double或float是可能的(但请记住,双精度和浮点数不准确)。
其次,由于字段中的值相同,文档之间的顺序是未定义的(..或者它将默认为它们已添加的顺序,但可能会更改,但可能不同两个核心)。使用辅助的稳定字段(例如名称,id,添加的日期等)来对核心中的相同数据进行相同的排序(这也是为什么cursorMark在使用时需要按唯一键进行排序的原因。)
答案 1 :(得分:0)
问题是:Solr将以随机方式对具有相同值的数据进行排序,如果您将一次又一次地尝试相同的查询,那么排序的顺序将针对相同的值进行更改。我认为这是问题