我正在寻找支持Windows XP 32位的文档数据库,满足以下要求:
所以,从某种意义上说,我正在寻找像MongoDB这样的东西,但是在Windows XP 32位的支持下。
有任何建议吗?
P.S。
我知道在MS支持它之前,Windows XP还有一年的生存时间。但是,无论如何,我必须支持XP。
答案 0 :(得分:1)
使用HSQLDB和其他一些关系数据库,您可以将文档存储为CLOB。可以通过单个表访问此clob,该表包含所有索引字段的索引。例如
CREATE TABLE DATAINDEX(DOCID BIGINT GENERATED BY DEFAULT AS IDENTITY, FIELDNAME VARCHAR(128), FIELD VARCHAR(10000),
DOCUMENT CLOB, PRIMARY KEY (DOCID, FIELDNAME))
CREATE INDEX IDS ON (FIELDNAME, FIELD);
整个文件是CLOB。需要搜索索引的所选字段的副本存储在(fieldnname,field)列中。具有相同DOCID的行将在DOCUMENT列中具有相同的CLOB。使用第一个字段和clob插入一行,然后通过选择并插入现有的DOCID和clob以及第二个字段来复制它,依此类推。
-- use this to insert the CLOB with the first field
INSERT INTO DATAINDEX VALUES DEFAULT, 'f1', 'fieldvalue 1', ?
-- use this to insert the second, third and other fields
INSERT INTO DATAINDEX VALUES
IDENTITY(), 'f2', 'filedvalue 2',
(SELECT DOCUMENT FROM DATAINDEX WHERE DOCID = IDENTITY() LIMIT 1)
以上只是一个例子。您可以创建自己的DOCID。原理是使用相同的DOCID并将第一行插入CLOB。第二行和第三行从先前插入的行中选择DOCID和clob以创建具有其他字段的新行。您可能会使用JDBC参数插入FIELDNAME和FIELD列。
这允许您执行以下搜索:
SELECT DOCID, DOCUMENT FROM DATAINDEX
WHERE FIELDNAME = 'COMPANY NAME' AND FIELD LIKE 'Corp%'
这可能无法满足您的所有要求,但答案是为了涵盖HSQLDB的可能性。
答案 1 :(得分:1)
您使用的是哪种编程框架?如果有可能是.NET,你可以试试RavenDB。它既可以用作embedded,也可以用作独立数据库。
对于Java,您可以试用OrientDB。它也是可嵌入的:https://github.com/nuvolabase/orientdb/wiki/Embedded-Server