Excalibur 文本搜索支持搜索查询的脏读隔离级别。
在将隔离级别设置为脏读之后,SELECT 语句不会因同一索引分段上同时出现 INSERT、UPDATE 或 DELETE 语句而被阻止。设置脏读隔离级别将允许某个客户机应用程序在其他客户机应用程序对某个表执行读操作的同时对该表进行修改,如以下示例中所示。
BEGIN WORK; INSERT INTO myEtxTab values (1001, 'new data'); ...
BEGIN WORK; SET ISOLATION TO DIRTY READ; SELECT * from myEtxTab where etx_contains(myEtxCol, Row('mykey', 'SEARCH_TYPE='WORD')); ...
尽管对于可同时在 etx 索引上执行的 SELECT 语句的数量没有限制,但是在某个指定时刻每次只可以在该索引上运行一条 DELETE、INSERT 或 UPDATE 语句。在没有将隔离级别设置为脏读的情况下,如果某个修改该索引的语句正在运行,那么任何 SELECT 语句都将不能在 etx 索引上执行。