【发布时间】:2016-08-02 13:47:41
【问题描述】:
我的 solr 中有包含多值字段的文档。我想根据这些多值字段进行搜索。 当我想查询时;
http://localhost:8983/solr/demo/select?q=*:*&fq=id:FEAE38C2-ABFF-4F0C-8AFD-9B8F51036D8A
它给了我以下查询结果。
response": {
"numFound": 1,
"start": 0,
"docs": [
{
"created_date": "2016-03-23T13:47:46.55Z",
"solr_index_date": "2016-04-01T08:21:59.78Z",
"TitleForUrl": "it-s-a-wonderful-life",
"modified_date": "2016-03-30T08:45:44.507Z",
"id": "FEAE38C2-ABFF-4F0C-8AFD-9B8F51036D8A",
"title": "It's a wonderful life",
"article": "An angel helps a compassionate but despairingly frustrated businessman by showing what life would have been like if he never exis",
"Cast": [
"James Stewart",
"Donna Reed",
"Lionel Barrymore"
],
"IsCastActive": [
"false",
"true",
"true"
]
}
]
}
如您所见,我有 2 个名为“Cast”和“IsCastActive”的多值字段。 我的问题是当我添加像 Cast:"James Stewart" AND IsCastActive = "true" 之类的过滤器时,如下所示:
http://localhost:8983/solr/demo/select?q=*:*&fq=id:FEAE38C2-ABFF-4F0C-8AFD-9B8F51036D8A&fq=Cast:"James Stewart"&fq=IsCastActive:"true"
Solr 仍然给出相同的结果,但“James Stewart”在文档中未处于活动状态。因此,我不希望 Solr 根据我的查询响应任何文档。 我想我做错了什么。正确的做法是什么?
【问题讨论】:
-
我认为不可能像这样过滤多字段。
-
“在文档中不活动”具体是什么意思?您已经将搜索限制为具有 id 匹配的单个文档,其余的只是重复缩小范围。
标签: search solr lucene multivalue