繁体   English   中英

Solr从索引中排除HTML类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM