如何查找文档是否以solr中的给定词语开头?

如何查找文档是否以solr中的给定词语开头?

问题描述:

我有索引文本的索引索引。 我想查询以某个词开始的文档。 我没有找到用lucene或dismax查询解析器来做到这一点的方法。如何查找文档是否以solr中的给定词语开头?

有没有办法做到这一点?

我想到的一个解决方案是在每行开始时用特殊标记索引字符串,即:“STARTOFTEXT”,然后查询“STARTOFTEXT something”。 有更好的解决方案吗?

如何在包含第一个单词的模式中创建一个字段?然后,当您构建文档时,您可以抓住第一个单词并将其与文本的其余部分分开存储。

+0

有没有一种简单的方法来做到这一点与现有的过滤器/分析仪? – davidbrai 2011-12-28 21:26:05

+1

不知道这是否容易,但您可能可以创建一个使用solr.PatternReplaceCharFilterFactory的字段,并创建一个正则表达式来删除第一个单词之后的所有内容。然后,只需使用copyField指令将大块文本复制到这个新字段。但我会倾向于抓住构建索引文件的应用程序中的第一个单词。 – 2011-12-29 00:52:36

+0

这是应用程序逻辑的一个工作,让它把它存储到一个新的领域。我想你打算将它作为关键字。您可能对单独的领域有很好的激励:您可以在搜索**和/或**时使用它来实现分面,从而提升该字段。 – aitchnyu 2011-12-29 05:01:46