在Raven db中搜索的问题

时间:2015-08-13 16:46:20

标签: linq c#-4.0 ravendb

我使用RavenDb存储数据。文档包含Id,Name,Description等列。

我将索引设置为"分析" for" Name"明显搜索输入文本的字段为"包含"在我正在使用的查询中         它作为" StartsWith"这工作正常。         见下面代码:

    index setting
    //this.Indexes.Add(x => x.Name, FieldIndexing.Analyzed);

    //Data retrieving Code
    //var resultSet = from temp in Query<Model>(Index.NAME)
    //.Where(x => x.Name.StartsWith(Searchterm))
    // select new { temp.Name }

我的问题是让我们说数据库中的名字是&#34; ABC PQR XYZ&#34;
        CASE1(STARTS WITH):当我输入&#34; ABC&#34;在搜索框中,我正在获得如上所述的正确记录         CASE2(全字搜索):当我键入&#34; ABC P&#34;或&#34; ABC PQ&#34;或者&#34; ABC PQR&#34;,我没有得到任何结果。 (这是问题)
        CASE3(CONTAINS):当我键入&#34; PQR&#34;或&#34; XYZ&#34;,我正在正确记录

现在我将索引更改为默认值,如:

    //this.Indexes.Add(x => x.Name, FieldIndexing.Default);

从上面CASE1&amp; 2正在运行但是case3不是。

有什么方法可以让所有3个案件都有效吗?任何帮助将非常感谢..

1 个答案:

答案 0 :(得分:0)

当您使用分析时,会发生的事情是您的文本被分解为单独的术语。

分析表明索引中的术语是:

[ABC,PQR,XYZ]

对于案例1,从开始,很容易看出它是如何工作的。 对于案例2,整个单词,你不 任何带有ABC P的术语,或类似的东西。

对于案例3,也没有包含该条款的条款。