Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在SOLR中将布尔值转换为整数?_Java_Sorting_Solr_Lucene_Schema - Fatal编程技术网

Java 如何在SOLR中将布尔值转换为整数?

Java 如何在SOLR中将布尔值转换为整数?,java,sorting,solr,lucene,schema,Java,Sorting,Solr,Lucene,Schema,我维护一个包含物品的商店,其中一些是高级会员。我试图在搜索结果的顶部找到25公里范围内的高级成员,其余的列表按最近的距离排序 为了表明列表是高级的,我定义了布尔字段listing\u premium <field name="listing_premium" type="boolean" indexed="true" stored="true" /> 我的问题是: 我是否可以将清单\u premium映射为0或1 或者我可以在排序中包含if语句吗 或者我可以在模式中使用copyF

我维护一个包含物品的商店,其中一些是高级会员。我试图在搜索结果的顶部找到25公里范围内的高级成员,其余的列表按最近的距离排序

为了表明列表是高级的,我定义了布尔字段listing\u premium

<field name="listing_premium" type="boolean" indexed="true" stored="true" />
我的问题是:

  • 我是否可以将清单\u premium映射为0或1
  • 或者我可以在排序中包含if语句吗
  • 或者我可以在模式中使用copyField创建一个生成的字段,将listing\u premium转换为listing\u premium\u int吗

非常感谢

布尔值可能不是0和1。可以使用if()函数根据该值选择值

这句话:

if(listing_premium,1,0) 

如果listing\u premium为true,则返回1;如果为false,则返回0。

我不熟悉此系统,但您不能简单地说一些类似于
listing\u premium的话吗?1:0
?布伦丹-你说得对。我已经纠正了这种情况:)我也尝试过了,但我无法使它在排序中工作:&sort=mul(map(geodist(listing_location),0.0001,25,1,0),if(listing_premium,1,0))异常:无法确定排序顺序:'mul(map(geodist(listing_location),1,25,1,0),if(listing_premium,1,0))desc你有一个排序中的if语句的例子吗?对不起,我在edismax的boost参数中做过这种事情,但没有排序。您可能想尝试boost,它将您的分数与相关性分数混合在一起。
if(listing_premium,1,0)