使用Python查询Microsoft搜索索引

使用Python查询Microsoft搜索索引,python,ado,windows-search,Python,Ado,Windows Search,我正在试图找到一种在Windows搜索索引上运行SQL查询的方法 使用.NET或Powershell很容易做到这一点,但无论我做什么,我似乎都无法让它在Python中工作 我试着使用PyODBC并使用JET4驱动程序,但却出现了一大堆错误。 然后,我尝试使用win32con客户端进行ADO连接,但也没有成功 我尝试将提供者声明为MSIDXS.1或在某些地方提供的Search.CollatorDSO,甚至尝试直接访问EDB文件,但没有成功 有没有人能做到这一点,或者知道问题出在哪里 作为参考,我附

我正在试图找到一种在Windows搜索索引上运行SQL查询的方法

使用.NET或Powershell很容易做到这一点,但无论我做什么,我似乎都无法让它在Python中工作

我试着使用PyODBC并使用JET4驱动程序,但却出现了一大堆错误。 然后,我尝试使用win32con客户端进行ADO连接,但也没有成功

我尝试将提供者声明为
MSIDXS.1
或在某些地方提供的
Search.CollatorDSO
,甚至尝试直接访问EDB文件,但没有成功

有没有人能做到这一点,或者知道问题出在哪里

作为参考,我附加了一个链接到执行此操作的Powershell和C#脚本示例: - -

我可以使用VB脚本并以查询作为参数来处理它,但我觉得它很蹩脚

编辑: 我现在似乎连接到了正确的数据库,但出现了一个错误:

我的代码:

    conn = win32com.client.Dispatch('ADODB.Connection')
    #DSN = ('Provider=MSIDXS.1;Data Source=SYSTEMINDEX;')
    DSN = ('Provider=MSIDXS.1;Data Source=myCatalog;')
    conn.Open(DSN)
    rs = win32com.client.Dispatch(dispatch='ADODB.Recordset')
    strsql = r'SELECT 
错误:

Traceback (most recent call last):
File "E:/Automation Scripts/123456/searchIndexQuery.py", line 48, in <module>
searchIndexConnector().ado()
File "E:/Automation Scripts/123456/searchIndexQuery.py", line 42, in ado
rs.Open(strsql, conn, 1, 3)
File "<COMObject ADODB.Recordset>", line 4, in Open
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft OLE DB Provider for Indexing Service', u"Incorrect syntax near '.'.  Expected ',', '.', FROM. SQLSTATE=42000 ", None, 0, -2147217900), None)
回溯(最近一次呼叫最后一次):
文件“E:/Automation Scripts/123456/searchIndexQuery.py”,第48行,在
searchIndexConnector().ado()
文件“E:/Automation Scripts/123456/searchIndexQuery.py”,第42行,ado格式
rs.Open(strsql,conn,1,3)
文件“”,第4行,处于打开状态
pywintypes.com_错误:(-2147352567,'发生异常',(0,u'用于索引服务的Microsoft OLE DB提供程序',u'靠近''的语法不正确。应为',','。FROM.SQLSTATE=42000',无,0,-2147217900),无)

谢谢

你解决过这个问题吗?我让查询工作,可以在记录集上迭代,但在7500个左右的记录之后,它将引发
3721-2146824567 0x800A0E89数据值太大,无法用字段数据类型表示。
如果有帮助,这表明我实现了这一点(它工作,但随后失败,错误与此处不同)。