精华内容
下载资源
问答
  • 转载请标明出处:https://blog.csdn.net/men_ma/article/details/106847165. 本文出自 不怕报错 就怕不报错的小猿猿 的博客 mysql中文全文检索全文搜索

    转载请标明出处:https://blog.csdn.net/men_ma/article/details/106847165.
    本文出自 不怕报错 就怕不报错的小猿猿 的博客

    mysql中文全文检索即全文搜索

    1.显示mysql的版本

    select version();

    展开全文
  • 应用场景酒店预订app全文检索具体实现1、 根据业务组建查询条件参数:SearchParams2、构建关键字查询:keywordQuery/** * 构建关键字查询。 * * 从多个字段构建关键字查询,包括拼音。 * * @param keyword ...

    应用场景

    酒店预订app全文检索

    具体实现

    1、 根据业务组建查询条件参数:SearchParams

    2、构建关键字查询:keywordQuery

    /**
         * 构建关键字查询。
         * <p>
         * 从多个字段构建关键字查询,包括拼音。
         *
         * @param keyword 关键字
         * @return 构建器
         */
        private MultiMatchQueryBuilder buildKeyWordQuery(String keyword) {
            // 关键字模糊匹配
            if (StringUtils.hasLength(keyword)) {
                String[] fields = {
    //                    "name", "name.pinyin",
                        "cityName", "cityName.pinyin",
                        "areaName", "areaName.pinyin",
                        "streetName", "streetName.pinyin",
                        "address", "address.pinyin"
    //                    "dictTypeByPositionName", "dictTypeByPositionName.pinyin",
    //                    "dictTypeByServiceName", "dictTypeByServiceName.pinyin"
                };
                MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery(keyword, fields);
                multiMatchQueryBuilder.field("name", 2.0f);
                multiMatchQueryBuilder.field("name.pinyin", 2.0f);
                multiMatchQueryBuilder.type(MultiMatchQueryBuilder.Type.PHRASE); // 短语匹配
                multiMatchQueryBuilder.slop(30); // 间隔30个词也能查询
                return multiMatchQueryBuilder;
            }
            return null;
        }

    3、 构建范围查询:priceQuery(价格和时间等的查询以范围查询rangeQuery为载体)

        /**此处省略若干业务代码**/
    
     QueryBuilders.rangeQuery("Price").gte(minPrice).lte(maxPrice)
                        )
    
        ...

    4、 构建布尔查询:boolQueryBuilder(构建完整查询,所有的其他参数都以bool体现)

            ...
    
    // 省份、地区
            String provinceCode = searchParams.getProvinceCode();
            String cityCode = searchParams.getCityCode(); 
            if (StringUtils.hasLength(provinceCode)) {
                boolQueryBuilder.must(QueryBuilders.termQuery("provinceCode", provinceCode));
            }
            if (StringUtils.hasLength(cityCode)) {
                boolQueryBuilder.must(QueryBuilders.termQuery("cityCode", cityCode));
    
            ...

    5、查询boolQueryBuilder过滤

    以完整的查询builder过滤价格priceQuery、时间条件等
    
            // ~ 价格查询过滤
            // 其他条件加上价格和入住、离店时间条件
            String priceChildType = PRICE_INDEX_TYPE; // 父子查询,价格作为酒店的子项
            boolQueryBuilder.filter(QueryBuilders.hasChildQuery(priceChildType, priceQuery, ScoreMode.None));

    6、构建排序SortBuilders

    根据业务进行①定位位置、②酒店评分、③时间等进行排序构建SortBuilders
    

    7、组建分页

            int curPage = searchParams.getCurrentPage();
            int pageSize = searchParams.getPageSize();
            int from = (curPage - 1) * pageSize;

    8、调用之前写好的API执行查询

     // ~ 执行查询
    SearchResponse sr = esService.search(HOTEL_INDEX_NAME,HOTEL_INDEX_TYPE, searchSourceBuilder, boolQueryBuilder,null, from, pageSize, null, sortBuilders.toArray(new SortBuilder[sortBuilders.size()]));

    9、处理检索处理结果

    根据业务需求对ES检索结果进行结果处理和页面展示。
    

    总结

    到此,Elasticsearch全文检索企业实战的开发记录完毕,本次开发记录的更多的是程序结构设计的思想,以及实战的架构设计。目前系统运行性能良好,后期会记录Elasticsearch相关优化。

    展开全文
  • 全文检索

    2019-07-10 17:49:03
    haystack:django的一个包,可以方便地对model里面的内容进行索引、搜索,设计为支持whoosh,solr,Xapian,Elasticsearc四种全文检索引擎后端,属于一种全文检索的框架 whoosh:纯Python编写的全文搜索引擎,虽然性能...
    1. 什么是全文检索?
      全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理
    2. 常用的全文检索的包

    haystack:django的一个包,可以方便地对model里面的内容进行索引、搜索,设计为支持whoosh,solr,Xapian,Elasticsearc四种全文检索引擎后端,属于一种全文检索的框架
    whoosh:纯Python编写的全文搜索引擎,虽然性能比不上sphinx、xapian、Elasticsearc等,但是无二进制包,程序不会莫名其妙的崩溃,对于小型的站点,whoosh已经足够使用
    jieba:一款免费的中文分词包

    1. 使用
      #安装包
    pip install django-haystack
    pip install whoosh
    pip install jieba
    

      #修改setting.py

    INSTALLED_APPS = (
        'haystack',
    )
    #添加搜索引擎
    HAYSTACK_CONNECTIONS = {
        'default': {
            'ENGINE': 'haystack.backends.whoosh_cn_backend.WhooshEngine',
            'PATH': os.path.join(BASE_DIR, 'whoosh_index'),
        }
    }
    
    #自动生成索引
    HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
    

      #在项目的urls.py添加(注意不是应用)

    urlpatterns = [
        ...
        url(r'^search/', include('haystack.urls')),
    ]
    

      #在应用目录下建立search_indexes.py文件

    # coding=utf-8
    from haystack import indexes
    from models import GoodsInfo
    
    
    class GoodsInfoIndex(indexes.SearchIndex, indexes.Indexable):
        text = indexes.CharField(document=True, use_template=True)
    
        def get_model(self):
            return GoodsInfo
    
        def index_queryset(self, using=None):
            return self.get_model().objects.all()
    

      #在目录“templates/search/indexes/应用名称/”下创建“模型类名称_text.txt”文件

    #goodsinfo_text.txt,这里列出了要对哪些列的内容进行检索
    {{ object.gName }}
    {{ object.gSubName }}
    {{ object.gDes }}
    

    全文检索

    展开全文
  • 文本搜索

    2017-08-14 02:20:23
    什么是文本搜索(Text Retrieval) 存在一个文档集,用户输入查询语句表示查询需求,搜索引擎返回搜索结果。这个过程一般被称为信息检索。但其实信息检索的范围更广泛。信息检索报告:文本检索、图片检索、视频检索等...

    说明:文章内容来源于课程视频和课程ppt。我只学习了课程没有做习题。文章不是翻译,是我对课程的理解。


    什么是文本搜索(Text Retrieval)

     存在一个文档集,用户输入查询语句表示查询需求,搜索引擎返回搜索结果。这个过程一般被称为信息检索。但其实信息检索的范围更广泛。信息检索报告:文本检索、图片检索、视频检索等。

    TR的特点

     1 数据是非结构化的,并且有歧义;
     2 查询语句是有歧义的,是不完整的;
     3 返回的结果是与查询条件相关的
     4 TR是一个经验主义的问题
     

    TR的公式

     计算R(q),得到一个文档与搜索语句的相关性。计算策略使用文档排序,而不是文档选择。 f(d,q)=?
     按照相关度降序排序是基于两个假设:1对一个用户来讲,文档之间是独立的;2 用户线性方式浏览结果的。
     

    文档排序函数设计思路

     1 基于相似度Similarity-based models f(d,q)=similarity(d,q)
      Vector space model
     2 概率模型(Probabilistic models) f(d,q)=p(R=1|d,q),whereR{0,1}
      Language model
     3 公理化模型(Axiomatic model)

    展开全文
  • 文本检索

    千次阅读 2018-10-31 14:27:29
    文本检索相关资料 https://github.com/NTMC-Community/awaresome-neural-models-for-semantic-match
  • 最近遇到有些人对于 SQL Server Express有些小误解,误会大部分起源于SQL Server Express是免费的,所以不包含很多专业版的功能(尤其集中在对于不包含全文检索的误会)SQL Server 2008 Express Edition应该再区分为...
  • 全文检索

    2016-07-01 19:16:06
    全文检索(full-text search),是指从文本或数据库中,不限定资料字段,自由地萃取出讯息的技术。 而搜索引擎(search engine),是指执行全文检索任务的程序,一般称作搜索引擎(search engine),它将使用者随意输入的...
  • 背景:搞个个人博客的全文搜索得用like啥的,现在mysql版本号已经大于5.6.4了也就支持了innodb的全文搜索了,刚查了下目前版本号都到MySQL Community Server 5.6.19 了,所以,一些小的应用可以用它做全文搜索了,像...
  • Lucene是一个开放源代码的全文检索引擎工具包, 提供了完整的查询引擎和索引引擎, 部分文本分析引擎。Solr是一个高性能,基于Lucene的全文搜索服务器。提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展...
  • www.tompall.com lucene 全文检索 站内搜索 Lucene分页
  • Lunece全文检索搜索引擎

    千次阅读 2018-05-07 22:06:14
    lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
  • MySQL全文检索中文搜索

    千次阅读 2012-02-27 23:50:37
     全文搜索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。...
  • Django搜索工具——全文检索

    千次阅读 2017-10-28 11:23:22
    使用全文检索的效率更高,并且能够对于中文进行分词处理haystack:全文检索的框架,支持whoosh、solr、Xapian、Elasticsearc四种全文检索引擎,点击查看官方网站whoosh:纯Python编写的全文搜索引擎,虽然性能比不上...
  • django是python语言的一个web框架,功能强大。配合一些插件可为web网站很方便地添加搜索功能。下面通过本文给大家分享Python中使用haystack实现django全文检索搜索引擎功能,感兴趣的朋友一起看看吧
  • 1. 全文检索搜索引擎原理 商品搜索需求 当用户在搜索框输入商品关键字后,我们要为用户提供相关的商品搜索结果。 商品搜索实现 可以选择使用模糊查询like关键字实现。 但是 like 关键字的效率极低。 查询需要在多...
  • 如图,为何全文检索需要输入完整的型号才能搜索到呢?求解 ![图片说明](https://img-ask.csdn.net/upload/201707/28/1501208014_271521.png)
  • 全文检索 文章目录全文检索一.数据及数据检索方式1.数据分类2.检索方式:二.全文检索原理索引中存什么、怎么存? 一.数据及数据检索方式 1.数据分类 生活中遇到的数据可以分为结构化数据和非结构化数据 结构化数据:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 757,705
精华内容 303,082
关键字:

全文搜索