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
Search I';我的多值字段没有匹配项_Search_Solr_Multivalue - Fatal编程技术网

Search I';我的多值字段没有匹配项

Search I';我的多值字段没有匹配项,search,solr,multivalue,Search,Solr,Multivalue,在我的模式中有几个多值字段,但是当我搜索应该从这些字段生成结果的术语时,没有结果返回 例如,在我的模式中有一个多值字段,如下所示: <field name="tag" type="text_general" indexed="true" stored="true" multiValued="true"/> 我在单值字段中使用“test”得到结果,但在多值字段中没有。我转储搜索返回的结果,以验证存储的内容 (matches when I search "test") name: TE

在我的模式中有几个多值字段,但是当我搜索应该从这些字段生成结果的术语时,没有结果返回

例如,在我的模式中有一个多值字段,如下所示:

<field name="tag" type="text_general" indexed="true" stored="true" multiValued="true"/>
我在单值字段中使用“test”得到结果,但在多值字段中没有。我转储搜索返回的结果,以验证存储的内容

(matches when I search "test")
name: TEST 4
description: i match the query "test"
year: 2010
id: 61

(does not match when I search "test")
name: BEST 4
description: i do not match the query
year: 2010
id: 68
tags: (array)
  0:test
  1:test2
  2:i'm a test

我在搜索中找不到类似的问题,所以我觉得我一定错过了什么。有人能给我指出正确的方向吗?

标签是否包含在可搜索字段列表中?
您正在搜索哪些字段?您可能需要添加标记

当您使用defType作为dismax时,您可以尝试在url中传递qf=标记,以测试名为best4的文档是否返回结果

用于搜索名称、说明和标记的示例solrconfig.xml条目-

<requestHandler name="dismax" class="solr.SearchHandler">
   <lst name="defaults">
     <str name="echoParams">explicit</str>
     <str name="defType">dismax</str>
     <str name="qf">
        name description tags
     </str>
     <str name="q.alt">*:*</str>
     <str name="rows">10</str>
     <str name="fl">*,score</str>
   </lst>
</requestHandler>

数据库中的CSV完全是邪恶的。永远不要使用它,因为它只会给你带来悲伤、缓慢、重复数据和其他痛苦。数据库中没有CSV。我应该说清楚这是一个关于索尔的问题。在Solr中,多值字段必须包含一个具有可变数量值的字段(对于类似于标记的内容)。谢谢,向查询中添加“qf=tags”使我能够从标记字段中获得结果。我发誓我以前试过!我将使用默认字段设置一个请求处理程序,这将解决问题。谢谢你的快速回答!
<requestHandler name="dismax" class="solr.SearchHandler">
   <lst name="defaults">
     <str name="echoParams">explicit</str>
     <str name="defType">dismax</str>
     <str name="qf">
        name description tags
     </str>
     <str name="q.alt">*:*</str>
     <str name="rows">10</str>
     <str name="fl">*,score</str>
   </lst>
</requestHandler>
q=test&qt=dismax