在Solr过滤器类中访问索引标记

时间:2013-09-29 13:40:23

标签: solr filter lucene indexing token

我想在自定义Solr过滤器类中访问索引标记。该类是来自schema.xml且带有<filter />标记的常规过滤器。这可能吗?

一点背景:当查询进来时,我想用其他标记替换一些查询标记,但前提是它们在此字段的索引中。想象一下,例如,我将使用以查询标记开头的索引中的所有标记替换查询标记,类似于通配符搜索。当查询“text:te”时,实际查询可能是“text:test | text:tent | text:temple”,如果“test”,“tent”和“temple”在字段“text”的索引中。

我查看了API(TokenFilterTokenStreamAttributeSource)但找不到任何方法来访问索引。我甚至无法找到有关当前正在处理哪个字段的信息,但我从概念上看这可能没有意义。

那么,有没有办法访问索引?我最终需要的是org.apache.lucene.index.Terms的实例。

1 个答案:

答案 0 :(得分:0)

您所描述的内容是PrefixQuery已经通过rewrite方法已经完成的内容(以及MultiTermQuerys)。是否有某些原因是不够的。

是否有某些原因您不想使用Lucene提供的查询,例如PrefixQueryWildcardQuery