我刚刚开始探索SolrNet。以前我一直在使用MSSQL FULL TEXT。
在sql server中,我的查询进行全文搜索,并且还有多个连接和Where子句。我也使用自定义分页只返回数百万行中的10行。
我已经阅读了几篇solrNet文档并运行了博客上提供的示例应用程序。到目前为止一切运作良好。只需要了解一下,如何处理JOINS和WHERE子句?
e.g。如果用户搜索三星,数据库将返回100k记录,但如果用户搜索三星&& City ='New York'&&价格>'500'然后他只会得到几千条记录。
提前致谢!
答案 0 :(得分:1)
Solr没有连接。来自Solr wiki:
Solr提供一个表格。存储一组 通常在索引中的数据库表 需要对其中的一些进行非规范化 表。试图避免 非规范化通常会失败。
关于WHERE子句(即过滤),请参阅Querying in SolrNet,Solr query syntax和Common 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。这是一个“平坦”指数。