Merge pull request #70 from power721/feature/split-words

快速搜索:加强分词
pull/71/head
Roinlong 4 years ago committed by GitHub
commit 9ca35bf194
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java
  2. 6
      app/src/main/java/com/github/tvbox/osc/ui/activity/FastSearchActivity.java
  3. 13
      app/src/main/java/com/github/tvbox/osc/util/SearchHelper.java

@ -73,6 +73,7 @@ import java.net.URLEncoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
@ -763,7 +764,7 @@ public class DetailActivity extends BaseActivity {
quickSearchWord.clear(); quickSearchWord.clear();
searchTitle = mVideo.name; searchTitle = mVideo.name;
quickSearchData.clear(); quickSearchData.clear();
quickSearchWord.add(searchTitle); quickSearchWord.addAll(SearchHelper.splitWords(searchTitle));
// 分词 // 分词
OkGo.<String>get("http://api.pullword.com/get.php?source=" + URLEncoder.encode(searchTitle) + "&param1=0&param2=0&json=1") OkGo.<String>get("http://api.pullword.com/get.php?source=" + URLEncoder.encode(searchTitle) + "&param1=0&param2=0&json=1")
.tag("fenci") .tag("fenci")
@ -780,7 +781,6 @@ public class DetailActivity extends BaseActivity {
@Override @Override
public void onSuccess(Response<String> response) { public void onSuccess(Response<String> response) {
String json = response.body(); String json = response.body();
quickSearchWord.clear();
try { try {
for (JsonElement je : new Gson().fromJson(json, JsonArray.class)) { for (JsonElement je : new Gson().fromJson(json, JsonArray.class)) {
quickSearchWord.add(je.getAsJsonObject().get("t").getAsString()); quickSearchWord.add(je.getAsJsonObject().get("t").getAsString());
@ -788,8 +788,8 @@ public class DetailActivity extends BaseActivity {
} catch (Throwable th) { } catch (Throwable th) {
th.printStackTrace(); th.printStackTrace();
} }
quickSearchWord.add(searchTitle); List<String> words = new ArrayList<>(new HashSet<>(quickSearchWord));
EventBus.getDefault().post(new RefreshEvent(RefreshEvent.TYPE_QUICK_SEARCH_WORD, quickSearchWord)); EventBus.getDefault().post(new RefreshEvent(RefreshEvent.TYPE_QUICK_SEARCH_WORD, words));
} }
@Override @Override

@ -44,6 +44,7 @@ import org.greenrobot.eventbus.ThreadMode;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
@ -299,8 +300,9 @@ public class FastSearchActivity extends BaseActivity {
} catch (Throwable th) { } catch (Throwable th) {
th.printStackTrace(); th.printStackTrace();
} }
quickSearchWord.add(searchTitle); quickSearchWord.addAll(SearchHelper.splitWords(searchTitle));
EventBus.getDefault().post(new RefreshEvent(RefreshEvent.TYPE_QUICK_SEARCH_WORD, quickSearchWord)); List<String> words = new ArrayList<>(new HashSet<>(quickSearchWord));
EventBus.getDefault().post(new RefreshEvent(RefreshEvent.TYPE_QUICK_SEARCH_WORD, words));
} }
@Override @Override

@ -5,7 +5,10 @@ import com.github.tvbox.osc.bean.SourceBean;
import com.github.tvbox.osc.ui.activity.SearchActivity; import com.github.tvbox.osc.ui.activity.SearchActivity;
import com.orhanobut.hawk.Hawk; import com.orhanobut.hawk.Hawk;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
public class SearchHelper { public class SearchHelper {
@ -52,4 +55,14 @@ public class SearchHelper {
return mCheckSources; return mCheckSources;
} }
public static List<String> splitWords(String text) {
List<String> result = new ArrayList<>();
result.add(text);
String[] parts = text.split("\\W+");
if (parts.length > 1) {
result.addAll(Arrays.asList(parts));
}
return result;
}
} }

Loading…
Cancel
Save