How can I crawl but not index web pages in OpenSearchServer?
我正在使用OpenSearchServer在网站上提供搜索功能。我想对网站上的所有页面进行爬网以获取链接,但是我想从索引中排除一些页面。我不知道该怎么做。
具体而言,该网站包括一家拥有自己产品搜索的商店,我将继续搜索产品和类别。产品页面具有类似
我的问题是过滤器对结果没有影响-它不会过滤出
我尝试在带有
但是,尽管"抓取工具">"排除列表"过滤器支持通配符,但查询过滤器似乎不支持通配符。
我尝试在"模式">"字段"中添加一个名为urlField的新字段,并使用使用空白令牌生成器和正则表达式(
-
http://www.thesite/p/ -
p
我希望能够在"查询">"过滤器"中使用第一个来排除所有商店结果,并且如果需要在某个时间搜索产品页面,可以选择使用p(用于产品)或c(用于类别)在将来。
模式中的urlShop字段设置如下:
1 2 3 4 5 | Indexed: yes Stored: no (because I don't need the field back, just want to be able to filter on it) TermVector: No Analyzer: urlShop Copy of: url |
我已将
当我使用默认渲染器时,这似乎对结果没有影响。
要查看它是否影响返回的结果,我取消了查询过滤器中的否定框,但在默认渲染器中未得到任何结果。这使我相信urlShop字段没有被填充,但是我不确定如何直接检查它。
我想知道是否有更简单的方法来执行此操作,但是如果我的方法在OpenSearchServer的上下文中有意义,请您能帮我找出问题所在吗?
该网站在IIS下运行,并且OpenSearchServer将在Tomcat中运行的同一服务器上进行配置。
终于想通了...
转到查询,然后为您配置的查询点击"编辑"。 然后转到过滤器标签。 添加如下查询过滤器:
1 | urlExact:"http://myurltoexclude*" |
选中"负数"框。 单击添加。
现在,请确保单击"保存在右侧的小巧小按钮中。这是我错过的部分。URLS仍在数据库中并正在爬网,但至少不会在结果中返回它们。