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

问题描述

|| 我刚刚开始探索SolrNet。以前我一直在使用MSsql FULL TEXT。 在sql server中,我的查询进行全文搜索,并且还具有多个联接和Where子句。我还使用自定义分页,仅返回百万行中的10行。 我读了一些solrNet文档,并运行博客上提供的示例应用程序。到目前为止一切都很好。只需了解一下,如何使用JOINS和WHERE子句? 例如如果用户搜索Samsung,db将返回10万条记录,但是如果用户搜索Samsung && City = \'New York \'&& Price> \'500 \',那么他将仅获得数千条记录。 是否在Solr中添加所有列并在Solr中编写WHERE子句? 我该如何处理sql JOINS? 提前致谢!     

解决方法

        Solr中没有任何联接。从Solr Wiki:   Solr提供了一张桌子。存放一套   索引中的数据库表   需要将某些   表。尝试避免   非正规化通常会失败。 关于WHERE子句(即过滤),请参阅在SolrNet中查询,Solr查询语法和Common Solr查询参数。     ,        Solr等效于where子句的作用是将列映射到字段并根据查询语法运行查询。像您的示例这样的查询:
 Samsung && City=\'New york\' && Price >\'500\' 
可以在Solr中翻译成这样:
 q=Samsung AND city:\"new york\" AND price:[500 TO *]
将数据库映射到Solr模式时,需要特别小心,特别是可能必须对数据进行非规范化。有关更多信息,请参见Solr Wiki上的此页面。基本上,您不能真正在Solr中执行复杂的JOIN。它是一个“扁平”索引。