1、被搜索的列必须被索引,否则搜索不到数据,设置schema.xml文件中该列的indexed为true,如下:
<field name="picurl" type="string" indexed="true" stored="true" required="false" />
2、solr搜索非空语法为['' TO *],可以在搜索URL中加上过虑条件fq,如下面表示只搜索picurl不为NULL的数据:
http://localhost:8070/sale/api.htm?indent=true&fq=picurl:['' TO *]
3、也可以在requestHandler中加上该fq,如:
<requestHandler name="/api" class="solr.StandardRequestHandler"
default="true">
<!-- default values for query parameters -->
<lst name="defaults">
<str name="title">产品供应搜索</str>
<str name="wt">json</str>
<str name="defType">dismax</str>
<str name="ps">100</str>
<str name="qs">100</str>
<str name="q.alt">*:*</str>
<str name="rows">10</str>
<str name="fl">*,score</str>
<str name="sort">grade asc,begindate desc</str>
<str name="qf">title^10 name^1.0 text^0.2</str>
</lst>
<lst name="appends"><!-- 只能搜索picurl不为空的字段 -->
<str name="fq">picurl:['' TO *]</str>
</lst>
</requestHandler>