天天看點

Solr 搜尋不為空值

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>