SolrNet新手 - 如何处理多个Where子句

时间:2011-06-14 17:05:39

标签: sql-server solr solrnet full-text-search

我刚刚开始探索SolrNet。以前我一直在使用MSSQL FULL TEXT。

在sql server中,我的查询进行全文搜索,并且还有多个连接和Where子句。我也使用自定义分页只返回数百万行中的10行。

我已经阅读了几篇solrNet文档并运行了博客上提供的示例应用程序。到目前为止一切运作良好。只需要了解一下,如何处理JOINS和WHERE子句?

e.g。如果用户搜索三星,数据库将返回100k记录,但如果用户搜索三星&& City ='New York'&&价格>'500'然后他只会得到几千条记录。

  • 我是否在Solr中添加所有列并在Solr中写入WHERE子句?
  • 我该怎么做SQL JOINS?

提前致谢!

2 个答案:

答案 0 :(得分:1)

Solr没有连接。来自Solr wiki

  

Solr提供一个表格。存储一组   通常在索引中的数据库表   需要对其中的一些进行非规范化   表。试图避免   非规范化通常会失败。

关于WHERE子句(即过滤),请参阅Querying in SolrNetSolr query syntaxCommon Solr query parameters

答案 1 :(得分:1)

您的where子句的Solr等效项是将列映射到字段并根据查询语法运行查询。像您的示例一样的查询:

 Samsung && City='New york' && Price >'500' 

可以在Solr中翻译成这样的东西:

 q=Samsung AND city:"new york" AND price:[500 TO *]

将数据库映射到Solr架构时需要注意,特别是您可能需要对数据进行非规范化。有关详细信息,请参阅this page on the Solr wiki。基本上,你不能在Solr中真正做复杂的JOIN。这是一个“平坦”指数。