import org.junit.jupiter.api.Test;
import org.wltea.analyzer.core.IKSegmenter;
import org.wltea.analyzer.core.Lexeme;

import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;

/**
 * @author reghao
 * @date 2025-08-22 10:28:44
 */
public class SearchUnitTest {
    /**
     * 使用 ik 分词器对文本进行分词
     *
     * @param
     * @return
     * @date 2025-03-31 15:35:41
     */
    public List<String> segment(String text) {
        List<String> words = new ArrayList<>();
        try (StringReader reader = new StringReader(text)) {
            IKSegmenter segmenter = new IKSegmenter(reader, true);
            Lexeme lexeme;
            while ((lexeme = segmenter.next()) != null) {
                words.add(lexeme.getLexemeText());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        return words;
    }

    @Test
    public void segmentTest() throws IOException {
        String text = "将Field内容进行分词处理后得到的词(或整体Field内容)建立索引, 存储到索引域. **索引的目的是为了搜索. **如: 商品名称, 商品描述需要分词建立索引. 订单编号, 身份证号作为整体建立索引. **只要可能作为用户查询条件的词, 都需要索引. **";
        List<String> words = segment(text);
        words.forEach(System.out::println);
    }
}
