[英]solr exclude html class from indexing
我用Solr索引知识库。 问题在于,菜单也会被索引,因此搜索菜单中使用的术语会返回所有页面。
我可以以某种方式告诉solr从索引中排除特殊的html类吗?
HTML标记已删除,因此以后无法找到指定的元素。
编辑:
我为要达到的目标添加了一个简短的示例。
也就是说,将某些html节点(如我的导航)从beeing索引中排除。
范例html:
<nav>
<ul>
<li>topic-1</li>
<li>topic-2</li>
<li>topic-3</li>
</ul>
</nav>
<main>
<h1>Topic-1</h1>
<p>Lorem ipsum dolor sit ament...</p>
</main>
我目前从索引中得到的是:
topic-1
topic-2
topic-3
Topic-1
lorem ipsum dolor sit ament...
我想从索引中得到什么:
Topic-1
lorem ipsum dolor sit ament...
您基本上想删除一些文本。 您可以使用PatternReplace字符过滤器在字段本身上执行此操作,该过滤器位于字段类型定义中的Tokenizer之前。 但这将使其保留在该字段的存储版本中。
或者,您可以在索引编制过程中更早一些,并使用UpdateRequestProcessor修改该字段,甚至无需查看它是否要编制索引。 您需要为此使用RegexReplace URP 。
使用HTMLStripCharFilterFactory,它将剥离HTML标签:
<analyzer>
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
</analyzer>
让我知道它是否对您有用。
在这里,您将找到更多相同的信息。
https://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.HTMLStripCharFilterFactory
使用XPathEntityProcessor提取与提供的XPath模式匹配的文档子集。
这样,您就可以为页面中所需的实际内容编制索引(只要它是有效的XML),而忽略其他常见的内容,例如页眉/页脚/等。 也一样
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.