在autocompletetextview / edittext

时间:2015-10-22 20:41:06

标签: android json search android-edittext autocompletetextview

我对使用json和搜索的android有点新手。

我想在我的autocompletetextview / edittext中应用高级搜索过滤器,在android中存储在assets文件夹中的json文件中。

json文件包含我的应用的常见问题解答。

现在我想像Google Chrome一样创建高级搜索过滤器,如果我输入类似

的内容
  

STACK

我在网址栏中得到的预测是

  

STACK OVERFLOW

下一行

  

堆叠交换

哪里

  

字突出显示,并提供适当的建议。

所以,同样地,我希望以这种方式进行搜索过滤,因为我的json文件中有一些常见问题解答,当用户输入类似的内容时,

  

如何制作纸张制纸方法想要制作   废纸 ETC。

我希望你明白我的意思,现在从这里得到一些提示, 单词组成,制作,制作,所有这些都应该用于 MAKE ,这是所有人的根词。

因为我的常见问题解答有问题和相关答案(显然),所以问题可能是长格式的,所以要检索最佳类似的响应,我想创建高级搜索过滤器。

所以,我的问题是,

  

是否有任何特定的API或算法可以应用于实现   这个任务?

我已经研究了这个过去将​​近4-5天..

到目前为止我用于阅读json数据的内容如下:

public String loadJSONFromAsset() {
        String json = null;
        try {

            InputStream is = getAssets().open("faq.json");

            int size = is.available();

            byte[] buffer = new byte[size];

            is.read(buffer);

            is.close();

            json = new String(buffer, "UTF-8");

        } catch (IOException ex) {
            ex.printStackTrace();
            return null;
        }
        return json;

    }

然后,

try {
            JSONObject jO = new JSONObject(loadJSONFromAsset());
            JSONArray json = jO.getJSONArray("faq");
            Log.v("faq", "faq");

            for (int i = 0; i < json.length(); i++) {
                final JSONObject e = json.getJSONObject(i);
                q = e.getString("q");
                responseList.add(q);

                a = e.getString("a");

            }

        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

然后我设置了arrayadapter。

即使我使用自定义适配器,但现在不是问题。

所以,现在在我的搜索引擎中,当有人写一组关键字时,代码应该忽略文章,副词等。

预测的问题必须按相关性指数排序。

应该有同义词捕获和排序功能。

重视已识别的单词以优化相关的单词集。

可以添加分类词典。

所以,我想要这种类型的代码/引擎可以完成所需的任务。

即使用户点击空格键,也必须刷新排序。

是否有可以满足需求的API /库?

  

坦率地说,我尝试了很多自定义过滤器   解决方案和ALGOLIA API(非开源,已经试用了14天   只有..)和其他人,但这些都不足以解决我的问题   需要。

因此,我提前感谢您,如果您可以帮助我通过api或算法或代码或想法的合适解决方案来完成我的任务。

问候。

1 个答案:

答案 0 :(得分:0)

LUCENE Apache API,移动版本,5.3.0是我的查询的解决方案,我终于得到了..

lucene搜索和lucene研究是不同的项目来处理..