我正在做一个网络爬虫,保存到乌鸦的结果可以根据网站的大小而有所不同。我正在尝试删除一个特定的结果,这个结果已经超过了“每个会话的服务器数限制为30",我不想将其扩展到1000个限制,但是我确实想批量删除。
我所写的代码,我认为应该可以工作
public void DeleteCrawledLinks(string baseUrl)
{
DocumentStore().DatabaseCommands.DeleteByIndex(
"Auto/UrlContainers/ByBaseUrlAndUrl",
new IndexQuery
{
Query = "BaseUrl:" + baseUrl // where BaseUrl contains baseUrl
}, allowStale: false);
}在本示例中,Raven中的BaseUrl我们将其命名为" baseUrl ":"http://localhost:2125/“,baseUrl将是相同的,当我运行delete函数时,我收到以下错误消息
网址:"/bulk_docs/Auto/UrlContainers/ByBaseUrlAndUrl?query=BaseUrl%253Ahttp%253A%252F%252Flocalhost%253A2125%252F&start=0&pageSize=128&aggregation=None&allowStale=False“
System.ArgumentException:字段'http‘未编制索引,无法查询未编制索引的字段
这是因为:在我的查询中,有没有办法解决这个问题,还是有别的办法?我不想扩展限制,因为我抓取的站点可能会返回超过1000个结果。
发布于 2012-12-13 02:37:18
在自己构造查询时,按如下方式转义搜索词:
Query = "BaseUrl:" + RavenQuery.Escape(baseUrl)https://stackoverflow.com/questions/13837958
复制相似问题