Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr-复杂查询_Solr - Fatal编程技术网

Solr-复杂查询

Solr-复杂查询,solr,Solr,在我的应用程序中,我有几个搜索,比如用户搜索、讨论搜索、博客搜索等等。现在,我还需要一个“全局搜索”,它将导致所有类型的搜索。我的问题是,任何类型的搜索都有几个限制 用户搜索: q=userLastName:*searchString*^9 userFirstName:*searchString*^10&fq=documentType:4 AND marketId:(281807 1950) 讨论搜索: q=userLastNameLowerBoost:*searchString*

在我的应用程序中,我有几个搜索,比如用户搜索、讨论搜索、博客搜索等等。现在,我还需要一个“全局搜索”,它将导致所有类型的搜索。我的问题是,任何类型的搜索都有几个限制

用户搜索:

  q=userLastName:*searchString*^9 userFirstName:*searchString*^10&fq=documentType:4 AND marketId:(281807 1950)
讨论搜索:

q=userLastNameLowerBoost:*searchString*^6 userFirstNameLowerBoost:*searchString*^5 title:*searchString*&fq=(documentType:2 AND boardType:2 AND country:3028) OR (documentType:2 AND boardType:1)

如何将这些查询合并到一个查询中?这可能吗?

我的查询示例只是查询的片段。如果我能提供更多细节,这将超出讨论的范围。每个查询(用户、讨论、博客等)都有几个字段,还有一些相等的字段。所有查询都有一个“fq”查询,这是问题所在。我根据文档类型(1=博客,2=讨论,…)进行限制,并且我必须根据不同的市场进行限制

如果合并两个查询,则会丢失结果

e、 g

fq查询:

(documentType:4 AND marketId:(1956 1960 ..and so on..)) OR (documentType:3 AND marketId:(1956 ..and so son..))

(用户搜索)(讨论搜索)
就这么简单。您可以使用copyfield将用户搜索和讨论搜索内容复制到新字段,并在此新字段上运行全局搜索。“(用户搜索)(讨论搜索)”-->因过滤器查询而无法工作?copyfield也不是一个好主意,因为其中一些字段被增强了(忘了说)…您能提供更多关于字段和增强的详细信息吗?
(documentType:4 AND marketId:(1956 1960 ..and so on..)) OR (documentType:3 AND marketId:(1956 ..and so son..))