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
Php 带连字符的Solr方面查询结果_Php_Solr - Fatal编程技术网

Php 带连字符的Solr方面查询结果

Php 带连字符的Solr方面查询结果,php,solr,Php,Solr,我正在使用PHP使用方面字段执行SOLR查询。其中一些字段包含连字符文本,这给了我一个拆分的方面字段结果列表 some category name将给出一个数组,其中包含我不想要的键“some”、“category”、“name” My schema.xml将类别字段定义为: <field name="category" type="text_general" indexed="true" stored="true" required="false" multiValued="true"

我正在使用PHP使用方面字段执行SOLR查询。其中一些字段包含连字符文本,这给了我一个拆分的方面字段结果列表

some category name
将给出一个数组,其中包含我不想要的键
“some”、“category”、“name”

My schema.xml将类别字段定义为:

<field name="category" type="text_general" indexed="true" stored="true" required="false" multiValued="true" />

如何修复此问题以使字段值不在连字符上拆分?

您在架构中选择的“text\u general”类型已根据以下内容对值进行标记:

你可以:

  • 改用“string”类型。 看看
  • 定义您自己的类型并自定义标记化过程
您在模式中选择的类型“text\u general”已根据以下内容将值标记化:

你可以:

  • 改用“string”类型。 看看
  • 定义您自己的类型并自定义标记化过程

理想情况下,您的facet上的字段永远不应该被标记化,因为Solr将每个标记都视为一个单独的facet,并且在计算facet计数时会对其进行单独计数

您应该做的是按照Marie的建议为字段类型使用字符串,或者 若您希望能够在这个特定字段上同时进行facet和搜索,请创建一个字符串类型的副本字段,如下所示

<field name="category_facet" type="string" indexed="true" stored="true" required="false" multiValued="true" docValues="true" />

<copyField source="category" dest="category_facet" />

(注意:使用DocValues进行高效镶嵌)

然后在
category\u facet
字段上显示facet


这将为您提供所需的结果。

理想情况下,切面上的字段不应标记化,因为Solr将每个标记视为一个单独的切面,并在计算切面计数时对其进行单独计数

您应该做的是按照Marie的建议为字段类型使用字符串,或者 若您希望能够在这个特定字段上同时进行facet和搜索,请创建一个字符串类型的副本字段,如下所示

<field name="category_facet" type="string" indexed="true" stored="true" required="false" multiValued="true" docValues="true" />

<copyField source="category" dest="category_facet" />

(注意:使用DocValues进行高效镶嵌)

然后在
category\u facet
字段上显示facet


这会给你想要的结果。

谢谢,字符串就是我需要的。谢谢,字符串就是我需要的。