0

我的 Solr 服务器引用事件,带有各种文本字段(事件名称、描述、关键字...),当然还有开始日期和结束日期。

当我启动以下查询时:

http://xxxxxxxxxxx/viparis-solr-server/150/spell?q=foire&wt=json

我得到 28 个事件,所有事件都在一个索引文本字段中包含单词“foire”。

但是,如果我启动以下查询:

http://xxxxxxxxxxx/viparis-solr-server/150/spell?q=foire%20%2BdateFin:[NOW%20TO%20*]&wt=json

我收到 100 个事件(“dateFin”在法语中的意思是“endDate”),所有事件的结束日期都是今天或今天之后,但并非所有事件都在索引文本字段之一中包含“foire”一词。

我怎样才能设法结合这两个标准,以便只获取包含单词“foire”和结束日期在今天之后的事件?

4

1 回答 1

2

solr 的默认查询运算符是 OR。您可以执行以下操作之一来获得您期望的 AND 行为:

  • 添加&q.op=AND到您的请求
  • 在您的搜索词前放置 a+以告诉 Solr 将它们都包含在内。
  • 使用 finDate 作为过滤查询

您可以从SolrQuerySyntax页面获取更多详细信息。

于 2013-05-21T17:02:14.350 回答