0

我有一个 Solr 3.5 索引,我需要运行一个快速包含查询以进行调试。

该列的类型为StrField,我需要执行类似的操作q=FieldName:*.MP4


我知道一个永久的解决方案是将字段重新索引为 ngram,但这只是一个快速的一次性查询,我想知道它是否可能。

4

2 回答 2

1

由于您使用的是 Solr 3.5,因此不支持以通配符开头的查询。但是,您可以创建所有术语的反向索引。这意味着您将向后索引所有术语,并且您的查询看起来像 q==FieldName:4pm.*

于 2013-03-03T06:29:27.187 回答
0

如果您使用的是 Solr 4.0+,您可以进行正则表达式查询:

q=FieldName:/.*%5C.MP4/

%5C的 URL 编码在哪里\

更新:嗯,你甚至不需要那个。您的查询

q=FieldName:*.MP4

应该管用。我在 4.0 和 3.6.1 中尝试过,效果很好。

如果你也想要*.mp4,那么做一个这样的 OR 查询:

q=FieldName:(*.MP4 OR *.mp4)

更新 2:由于您的 Solr 版本是 3.5,您稍后将其添加到您的问题中,我想上面的两个选项都不适合您。我想你需要重新索引,除非有人知道如何在 solr 3.5 中打开前导通配符。

于 2013-03-01T21:38:49.730 回答