作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试设计一个适合与AppEngine Search API(java)一起使用的架构,并且鉴于以下用例,我希望能提出一些意见:
在我们的应用程序中,我们希望用户能够搜索Foo类型的对象。 Foo对象如下所示:
{
groupId: "x1",
name: "somename"
someFieldA: "somevalue",
someFieldB: "somevalue",
someFieldC: "somevalue"
}
{
groupId: "x2",
name: "somename"
someFieldD: "somevalue",
someFieldE: "somevalue",
someFieldF: "somevalue"
}
userquery AND (groupId:X OR groupId:Y OR groupId:Z)
{
groupId:"Hiring Process",
name: "Bob Smith",
position: "Software Engineer",
yearsOfExperience: 6
}
{
groupId:"Sales Process",
name: "Frank J",
company: "Engineering Engineer Inc.",
contactInfo: "555-555-5555"
}
{
groupId:"Hiring Process",
name: "Jane Doe",
position: "Marketing",
yearsOfExperience: 3
}
{
groupId:"Sales Process",
name: "Jane Moe",
company: "Google",
contactInfo: "666-666-6666"
}
engineer
,该搜索应返回2个结果,其中1个表示
Bob Smith
,1个表示
Frank J
。但是,
Frank J
结果的排名/得分较高,因为“工程师”一词在文档中出现了两次。
最佳答案
这是一个半生不熟的“答案”。我希望它可以激发您的思维,使您想出一个足够有效的真实答案。
对我而言,根据用户输入动态定义架构(即字段名集)的想法是一个危险信号。我可能不太愿意做一个笼统的声明,即永远不要做这样的事情。但这当然似乎值得深思。
如果这些字段是用户定义的,则似乎可以理解,系统没有任何特定的处理知识可用于这些字段。换句话说,对于系统而言,字段必须仅是通用信息容器。你同意吗?
因此,我的想法将朝着消除这一方面的方向发展。
我想知道是否有一种方法可以使实际的字段名称通用(例如UserField1,UserField2等),并将用户提供的字段名称的每个groupId映射到实际的字段名称存储在其他位置。似乎这对于全局搜索(在搜索查询中未提及字段名称)会很好。
我确实知道用户将无法简单地编写类似[engineer yearsOfExperience> 3]的查询。但是,想一想,他们还能这样做吗?是否允许他们定义用户定义字段的类型?
无论如何,我的感觉是不恰当地考虑了这些“领域”。用户定义的字段名以某种方式希望存储为数据,而不用作动态模式。
关于java - 如何为共享文档设计Appengine Search API索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19415081/
我是一名优秀的程序员,十分优秀!