我想在自定义Solr过滤器类中访问索引标记。该类是来自schema.xml
且带有<filter />
标记的常规过滤器。这可能吗?
一点背景:当查询进来时,我想用其他标记替换一些查询标记,但前提是它们在此字段的索引中。想象一下,例如,我将使用以查询标记开头的索引中的所有标记替换查询标记,类似于通配符搜索。当查询“text:te”时,实际查询可能是“text:test | text:tent | text:temple”,如果“test”,“tent”和“temple”在字段“text”的索引中。
我查看了API(TokenFilter
,TokenStream
,AttributeSource
)但找不到任何方法来访问索引。我甚至无法找到有关当前正在处理哪个字段的信息,但我从概念上看这可能没有意义。
那么,有没有办法访问索引?我最终需要的是org.apache.lucene.index.Terms
的实例。
答案 0 :(得分:0)
您所描述的内容是PrefixQuery
已经通过rewrite
方法已经完成的内容(以及MultiTermQuery
s)。是否有某些原因是不够的。
是否有某些原因您不想使用Lucene提供的查询,例如PrefixQuery
或WildcardQuery
?