【发布时间】:2017-10-31 14:31:25
【问题描述】:
是否可以在 Lucene / RavenDb 中执行查询(相关性搜索),它会自动搜索索引中的所有字段?
我有一个包含很多字段(40+)的索引,我想到处搜索它。此外,某些领域还应用了提升。
我理想的查询是简单的
red dog
这将返回所有包含这些关键字的文档,按相关性排序。
这可能吗,还是我必须添加一个手动字段,其中包含 40 个字段中的所有术语?
【问题讨论】:
是否可以在 Lucene / RavenDb 中执行查询(相关性搜索),它会自动搜索索引中的所有字段?
我有一个包含很多字段(40+)的索引,我想到处搜索它。此外,某些领域还应用了提升。
我理想的查询是简单的
red dog
这将返回所有包含这些关键字的文档,按相关性排序。
这可能吗,还是我必须添加一个手动字段,其中包含 40 个字段中的所有术语?
【问题讨论】:
您必须有一个包含您想要的所有术语的字段。 另请参阅此处概述的技术:https://ayende.com/blog/153729/lazys-man-comprehensive-search-with-ravendb
public class Users_AllProperties : AbstractIndexCreationTask<User, Users_AllProperties.Result>
{
public class Result
{
public string Query { get; set; }
}
public Users_AllProperties()
{
Map = users =>
from user in users
select new
{
Query = AsDocument(user).Select(x => x.Value)
};
Index(x=>x.Query, FieldIndexing.Analyzed);
}
}
【讨论】: