0

假设我有一个存储有以下内容的文档......

{
'author':'John',
'books': {
'book1': {
'author':'John Williams'
},
'book2': {
'author':'Jacob Riley'
},
'booklist':[
'book1': {
'author':'John Williams'
},
'book2': {
'author':'Jacob Riley'
}
]
}
}

如果用户在“作者”字段上对“乔”进行文本搜索,当返回结果时,它是否只搜索所有字段,包括书籍字典中的字段?还是只查看主列表中的“作者”字段?

用户如何只搜索“书单”或“书籍”中的“作者”字段?查询字符串是什么?

4

1 回答 1

0

好吧,你所有的“作者”字段都是不同的字段,ES 方面。你有

author
books.book1.author 
books.book2.author 
etc, etc

看?使用该 json 构造,它们都是不同的字段。现在,如果您有这样的列表:

{

'booklist' : [{
               'idbook' : 'book1'
               'author' : 'John Williams'
              }, 
              {
               'idbook' : 'book2'
               'author' : 'Jacob Riley'
              }
             ]

 }

并在字段 booklist.author 上进行搜索,它确实会搜索您列表中的所有书籍。请注意,强硬,如果您在同一本书中搜索多个标准,您将承担交叉匹配的风险。

例如,在这里,搜索 idbook = 'book1' 和 author = 'jacob riley',您的文档将匹配。请参阅嵌套类型或父子来解决此问题。

希望能帮助到你。

祝你好运。

于 2013-09-11T14:57:38.353 回答