我正在开发一个网络爬虫,保存到 Raven 的结果可能会因网站的大小而异。我正在尝试删除“每个会话的服务器限制为 30 个”的特定结果,我不想将其扩展到 1,000 个限制,但我确实想批量删除。
我写的我认为应该工作的代码是
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 将是相同的,当我运行删除函数时,我收到此错误消息
网址:“/bulk_docs/Auto/UrlContainers/ByBaseUrlAndUrl?query=BaseUrl%253Ahttp%253A%252F%252Flocalhost%253A2125%252F&start=0&pageSize=128&aggregation=None&allowStale=False”
System.ArgumentException:字段“http”未编入索引,无法查询未编入索引的字段
是因为 : 在我的查询中,有没有办法解决这个问题还是有其他方法?我不想扩大限制,因为我抓取的网站可能返回 1,000 多个结果。