2012-09-09 30 views
3

如何搜索在小查询Solr中一个字(或者换句话说,如何通过面搜索中使用通配符)
例如 ,如果我有小递交MyField的,它现在使用通配符Solr的面查询搜索

 

         
 
  1. ValX ValY
  2. ValX
  3. ValZ ValW
  4. ValX ValV
  5. ValA ValX
  6. ValA ValB

如果我搜索fq=MyField:ValX,我将只得到第二个记录:具有下列值。我如何搜索ValX并获得第一,第二,第四和第五个记录?
你知道fq=MyField:*ValX*是不允许的,fq=MyField:ValX*不会返回第5条记录。
任何想法是高度赞赏。

+0

这不支持SOLR fq = MyField:* ValX *?如果是这样可以实现的话?我想根据匹配的文本(如\ *文本\ *)进行过滤。谢谢 – Pranay

回答

1

Wildcard card on Facet Query should work

作为通配符查询不进行任何分析,你可以尝试fq=MyField:valx*

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

+0

谢谢,但这不会返回第五条记录....我怎样才能返回valx无论其位置(??? ValX ???) – Alaa

+0

更新了答案。 – Jayendra

+0

受链接中断 – killjoy

2

如何在schema.xml中定义MyField?在我看来,如果它没有标记化,例如像与

type="string" 

随着

type="text" 

字段值标记化,使

fq=MyField:valx 

应与1,2, 4和5.