尝试过的代码: -
public class Company
{
public long Number { get; set; }
public string Name{ get; set; }
}
我的问题是:如果我在搜索标签中提到类型名称,我就无法获得任何结果。
1)显示结果
var rowsList= client.Search(s => s.MatchAll()).Documents.ToList();
2)返回0行
var newr = client.Search<Company>(s => s.MatchAll()).Documents.ToList();
答案 0 :(得分:1)
键入的搜索默认为
/[inferred_index]/[inferred_typename]/_search
如果你想搜索所有索引和类型,你必须明确它
client.Search<Company>(s=>s
.AllIndices()
.AllTypes()
.MatchAll()
)
这将在/_search
您可以控制嵌套如何推断索引和类型名称,如下所示:
var settings = new ConnectionSettings(uri)
.SetDefaultIndex("my-default-index")
.MapDefaultTypeNames(d=>d
.Add(typeof(Company), "company-type")
)
MapDefaultTypeIndices(d=>d
.Add(typeof(Company), "company-index")
)
SetDefaultTypeNameInferrer(s=>s.ToLowerInvariant())
现在,如果您搜索<Company>
,则默认为/company-index/company-type/_search
如果您搜索<Person>
,它会在/my-default-index/person/_search
上进行查询。