7

我已经浏览了这个http://stackoverflow.com/questions/35053454/android-app-indexing-api-description-field。它讨论了description字段在App Indexing api. 在调用这个 api 时,我同时设置了titledescription字段。下面是示例代码

  Thing object = new Thing.Builder()
    .setName(title)
    .setUrl(uri)
    .setDescription(description)
    .build();

return new Action.Builder(Action.TYPE_VIEW)
    .setObject(object)
    .setActionStatus(Action.STATUS_TYPE_COMPLETED)
    .build();

但是当我使用谷歌应用搜索并输入关键字时title,我可以看到自动完成结果。但是,如果我键入字段中存在的关键字description,我将无法获得自动完成的结果。那么我应该怎么做才能将描述字段的内容获取到应用索引?

因为这是一个新闻阅读应用程序。所以我在新闻内容的第一段设置描述。第一段可以长达 500 个字符。对我们传递给描述字段的内容长度有什么建议吗?

4

1 回答 1

2

我尝试了一个实验,试图看看描述中的术语是否有所不同:

1-我将所有内容(包括描述)都放在标题中:

Thing object = new Thing.Builder()
.setName(title + " " + description)
.setUrl(uri)
.build();

我可以搜索标题和/或描述中的所有内容。

2-我按照文档做了所有事情,但没有说明:

Thing object = new Thing.Builder()
.setName(title)
.setUrl(uri)
.build();

我可以搜索标题中的所有内容,但在搜索结果中找不到仅在描述中的术语。

3-我按照文档做了所有事情,这次还添加了描述:

Thing object = new Thing.Builder()
.setName(title)
.setDescription(description)
.setUrl(uri)
.build();

结果与案例 2 相同;找不到描述中但标题中没有的任何术语。

4-我按照文档做了所有事情,这次添加了一个虚拟但独特的描述:

Thing object = new Thing.Builder()
.setName(title)
.setDescription("askdf asdfm askdfssdf")
.setUrl(uri)
.build();

搜索该唯一描述未找到该应用程序。

基于这个实验,我不认为描述是搜索的一部分(或者可能仅以次要方式使用)。我的建议是,在发生更改之前,将描述添加到应用索引的标题中(如上面的案例 1),如果您也需要对描述术语进行索引。现在,公平地说,在许多情况下,这可能会导致命中率过于宽泛。我怀疑这可能与当前的实现有关。

于 2016-06-06T23:33:36.557 回答