0

我有很多 dtSearch 索引,我的目标是找到“TestString-A”和“TestString-B”字符串的所有匹配项。

我使用以下dtSearch请求来查找所有匹配项:"*TestString-B*". 这个请求很好 。它返回所有文档中所有出现的“TestString-B”。

但是当请求是"*TestString-A*". 它不会返回任何出现的“TestString-A”,尽管它们是。但是"*TestString*"请求返回了很多次,包括“TestString-A”。

dtSearch 似乎认为“-A”后缀是一个特殊字符。有什么方法可以预防吗?

这是我的搜索代码(我也尝试在没有标志的情况下调用它,但没有帮助):

        searchTerm = '*' + searchTerm + '*';
        var folderManager = new FolderManager(_siteConfig);
        var indexFileLocation = Path.Combine(folderManager.GetFolderPath(Folder.FullTextIndexes), indexFolder);
        var searchJob = new SearchJob
        {
            TimeoutSeconds = DTSEARCH_TIMEOUT_SECONDS,
            SearchFlags = SearchFlags.dtsSearchWantHitDetails | SearchFlags.dtsSearchWantHitsByWord | SearchFlags.dtsSearchWantHitsArray,
            Request = searchTerm
        };
        searchJob.IndexesToSearch.Add(indexFileLocation);
        searchJob.Execute();
        //searchJob.Results.Count always equals to 0 when searchTerms has "-A" postfix

这是我创建索引的代码

private IndexJob GetJob(..., statusHandler)
{
    var indexPath = ...;
    var logFilePath = ...;

    var indexJob = new IndexJob();
    indexJob.IndexPath = indexPath;
    indexJob.ActionCreate = true;
    indexJob.ActionAdd = true;
    indexJob.IndexingFlags = IndexingFlags.dtsIndexCacheText |
    IndexingFlags.dtsIndexCacheOriginalFile |
    IndexingFlags.dtsAlwaysAdd |
    IndexingFlags.dtsIndexKeepExistingDocIds;
    indexJob.StoredFields.Add("UserDisplayName");
    indexJob.StoredFields.Add("UserDescription");
    indexJob.DataSourceToIndex = ...;
    indexJob.StatusHandler = statusHandler;

    SetIndexJobOptions();

return indexJob;
}


private void SetIndexJobOptions()
{
    var options = new Options();
    options.FieldFlags = FieldFlags.dtsoFfSkipFilenameField | FieldFlags.dtsoFfOfficeSkipHiddenContent | FieldFlags.dtsoFfXmlSkipAttributes | FieldFlags.dtsoFfSkipFilenameFieldPath;
    options.BinaryFiles = BinaryFilesSettings.dtsoIndexBinaryNoContent;
    options.TextFlags = TextFlags.dtsoTfRecognizeDates;
    options.Save();
}

DtSearch 引擎版本为 7.96 (Build 8668)

4

0 回答 0