问题描述
在 MarkLogic(在查询控制台中首选)中,使用 JavaScript,我想从 package webscrape;
/*
* To change this license header,choose License Headers in Project Properties.
* To change this template file,choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author glass
*/
public class HackerNewsItem {
private String title;
private String url;
private String author;
private int score;
private int position;
private int id;
public HackerNewsItem(String title,String url,String author,int score,int position,int id)
{
this.title = title;
this.url = url;
this.author = author;
this.score = score;
this.position =position;
this.id = id;
}
}
从 {{1 }} 到
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/xerces/xni/XNIException
at com.gargoylesoftware.htmlunit.DefaultPageCreator.<clinit>(DefaultPageCreator.java:91)
at com.gargoylesoftware.htmlunit.WebClient.<init>(WebClient.java:187)
at com.gargoylesoftware.htmlunit.WebClient.<init>(WebClient.java:269)
at com.gargoylesoftware.htmlunit.WebClient.<init>(WebClient.java:259)
at com.gargoylesoftware.htmlunit.WebClient.<init>(WebClient.java:251)
at webscrape.JsoupTutorial.<init>(JsoupTutorial.java:31)
at webscrape.JsoupTutorial$2.run(JsoupTutorial.java:190)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventdispatchThread.pumpOneEventForFilters(EventdispatchThread.java:203)
at java.desktop/java.awt.EventdispatchThread.pumpEventsForFilter(EventdispatchThread.java:124)
at java.desktop/java.awt.EventdispatchThread.pumpEventsForHierarchy(EventdispatchThread.java:113)
at java.desktop/java.awt.EventdispatchThread.pumpEvents(EventdispatchThread.java:109)
at java.desktop/java.awt.EventdispatchThread.pumpEvents(EventdispatchThread.java:101)
at java.desktop/java.awt.EventdispatchThread.run(EventdispatchThread.java:90)
Caused by: java.lang.classNotFoundException: org.apache.xerces.xni.XNIException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
at java.base/java.lang.classLoader.loadClass(ClassLoader.java:519)
... 20 more
BUILD SUCCESSFUL (total time: 1 second)
在 2020 年到 2021 年之间。
示例文档结构(集合 = 'members'):
memberIDs
对于这个例子,答案是“2”。
我在“Indexing in MarkLogic”下的文档中找到了一个可能的解决方案,称为“shotgun 查询”。
我也在这里Search Documents from two collections in MarkLogic发现了一个类似的问题。但是,我不知道 XQuery,所以我不知道如何使它适应我的情况。
我的第一个想法是分别执行这两个查询,填充两个数组并确定哪些 ID 显示在两个数组中。但是,由于较大的查询会产生超过 20 万个文档,因此计算时间仍然太长。
我可以通过使用子序列来克服这个障碍。 每次检索少量 URI,然后遍历 URI,从文档中检索我需要的值,并将它们添加到数组中。 可悲的是,我的方法并没有真正奏效。此外,我正在创建的副产品本身可能是一个问题。 二十万个文档意味着我必须存储在 40 万个字符串的数组中。 到目前为止,我有这个,它没有中断,但我在 15 秒后停止运行。
secondaryIDs
在 sql 中,我可能会在两个查询结果之间进行 INNER JOIN 来解决这个问题。 我可以使用 JavaScript API 在 MarkLogic 中做到这一点吗?
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)