出于某种原因,当解析通过solr集合导致Coldfusion时,我得到<cfquery>
标记内的SQL查询文本。有什么方法可以防止这种情况吗?
答案 0 :(得分:5)
您必须索引实际文件。 Solr不了解ColdFusion或SQL或cfquery标记。对于Solr来说,这些文件只是文本文件,而且它正在执行您告诉它要做的事情,即将内部文本编入索引。
通常,您会使用Solr来索引数据库中的记录,或者只使用纯文本文件,例如,它们不包含您的实际应用程序代码。
您可能能够找到Solr的过滤器,删除标签,可能是HTML过滤器或其他东西,以删除代码,但我不确定它是否会得到您想要的。我将首先查看HTMLStripCharFilterFactory或PatternReplaceCharFilterFactory。前者剥离了HTML,但我认为它可能只是删除了cfquery标记并留下了SQL,这不是你想要的。后者允许您编写自己的正则表达式来过滤索引文档中的内容。所以你可以编写一个删除cfquery标签的方法。您可以在Solr documentation
中找到有关这些内容的更多信息所有这一切,实际上你不应该使用Solr索引你的应用程序代码。您的网页内容不应与应用程序代码本身混合在一起。内容应存储在数据库或其他数据存储机制中,然后只应将内容本身编入索引。