3

如何在 solr 的 facet 查询中搜索单词(或者换句话说,如何在 facet 搜索中使用通配符)
例如,如果我有 facet 归档MyField并且它具有以下值:

  1. ValX
  2. ValX
  3. ValZ ValW
  4. 阀值阀值
  5. ValA ValX
  6. 缬氨酸

现在如果我搜索fq=MyField:ValX,我只会得到第二条记录。如何搜索 ValX 并获得第 1、2、4 和 5 条记录?
你知道fq=MyField:*ValX*是不允许的,fq=MyField:ValX*也不会返回第 5 条记录。
任何想法都受到高度赞赏。

4

2 回答 2

2

在 schema.xml 中 MyField 是如何定义的?在我看来好像它没有被标记化,例如

type="string"

type="text"

字段值被标记化,以便

fq=MyField:valx

应匹配 1、2、4 和 5。

于 2012-09-09T15:09:50.687 回答
1

Facet Query 上的通配符应该可以工作

由于通配符查询不经过任何分析,您可以尝试fq=MyField:valx*

您正在尝试的不是过滤,而是搜索。
使用带有小写过滤器和搜索的空格标记器,q=MyField:valx它会匹配结果。您也可以使用前缀和通配符查询。

于 2012-09-09T14:21:04.750 回答