我正在尝试将数据从Mongodb导入Solr6.0。完全导入正在执行,但delta导入不起作用。当我执行delta导入时,我得到以下结果。
请求:0,提取:0,跳过:0,已处理:0
我的数据配置文件查询如下
query=""
deltaQuery="db.getCollection('customer').find({'jDate':{$gt:'${dih.last_index_time}'}},{'_id' :1});"
deltaImportQuery="db.getCollection('customer').find({'_id':'${dataimporter.delta.id}'})"
整个data-config.xml
<?xml version="1.0"?>
<dataConfig>
<dataSource name="MyMongo" type="MongoDataSource" database="test_db" />
<document name="import">
<!-- if query="" then it imports everything -->
<entity processor="MongoEntityProcessor"
query=""
deltaQuery="db.getCollection('customer').find({'jDate':{$gt: '${dih.last_index_time}'}},{'_id' :1});"
deltaImportQuery="db.getCollection('customer').find({'_id':'${dataimporter.delta.id}'})"
collection="customer"
datasource="MyMongo"
transformer="MongoMapperTransformer" name="sample_entity">
<!-- If mongoField name and the field declared in schema.xml are same than no need to declare below.
If not same than you have to refer the mongoField to field in schema.xml
( Ex: mongoField="EmpNumber" to name="EmployeeNumber"). -->
<field column="_id" name="id"/>
<field column="CustID" name="CustID" mongoField="CustID"/>
<field column="CustName" name="CustName" mongoField="CustName"/>
<field column="jDate" name="jDate" mongoField="jDate"/>
<field column="dob" name="dob" mongoField="dob"/>
</entity>
</document>
</dataConfig>
我尝试使用硬编码值,但它仍然没有像下面那样工作
query=""
deltaQuery="db.getCollection('customer').find({'jDate':{$gt: new Date(1480581295000)}},{'_id' :1});"
deltaImportQuery="db.getCollection('customer').find({'_id':ObjectId('34234234dfsd34534524234ee')})"
然后我尝试做下面的事情,但仍然没有成功
query=""
deltaQuery="{'jDate':{$gt: new Date(1480581295000)}}"
deltaImportQuery="{'_id':ObjectId(34234234dfsd34534524234ee)}"
任何人,请尽可能。
答案 0 :(得分:0)
可以在deltaImportQuery中将{'_id':'$ {dataimporter.delta.id}'}替换为{'_id':'$ {dataimporter.delta。 _id }'}。 / p>
deltaImportQuery :(仅用于delta-import)。有一个名称空间$ {dih.delta。 column-name },可以在此查询中使用。例如:select * from tbl,其中id = $ {dih.delta.id} Solr1.4
如上所述,我们只能在delta命名空间中使用列名。
在从相关mysql导入delta时也遇到了同样的问题 Solr delta import Query exception
参考:
https://wiki.apache.org/solr/DataImportHandler
https://wiki.apache.org/solr/DataImportHandler#Configuration_in_data-config.xml
答案 1 :(得分:0)
你能尝试
private void button1_Click(object sender, EventArgs e)
{
string dir = @"C:\Knjigovodstvo\Firme\"+textBox1.Text+"";
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
File.WriteAllText(Path.Combine(dir, "Podaci.txt"), textBox1.Text);
StreamWriter sw = new StreamWriter(dir);
sw.WriteLine("" + textBox1.Text + "");
sw.Close();
}