<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bleve &#8211; wqh博客</title>
	<atom:link href="https://wangqianhong.com/tag/bleve/feed/" rel="self" type="application/rss+xml" />
	<link>https://wangqianhong.com</link>
	<description>和而不同</description>
	<lastBuildDate>Wed, 09 Apr 2025 02:43:49 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://wangqianhong.com/wp-content/uploads/2020/09/cropped-1-1-1-32x32.png</url>
	<title>Bleve &#8211; wqh博客</title>
	<link>https://wangqianhong.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Bleve 查询时如何处理特殊字符</title>
		<link>https://wangqianhong.com/2022/10/bleve-%e6%9f%a5%e8%af%a2%e6%97%b6%e5%a6%82%e4%bd%95%e5%a4%84%e7%90%86%e7%89%b9%e6%ae%8a%e5%ad%97%e7%ac%a6/</link>
					<comments>https://wangqianhong.com/2022/10/bleve-%e6%9f%a5%e8%af%a2%e6%97%b6%e5%a6%82%e4%bd%95%e5%a4%84%e7%90%86%e7%89%b9%e6%ae%8a%e5%ad%97%e7%ac%a6/#respond</comments>
		
		<dc:creator><![CDATA[wqh_work]]></dc:creator>
		<pubDate>Sun, 09 Oct 2022 02:43:23 +0000</pubDate>
				<category><![CDATA[技术文章]]></category>
		<category><![CDATA[Bleve]]></category>
		<guid isPermaLink="false">https://wangqianhong.com/?p=3849</guid>

					<description><![CDATA[<p>Bleve（https://github.com/blevesearch/bleve）是一个全文检索&#8230; <a href="https://wangqianhong.com/2022/10/bleve-%e6%9f%a5%e8%af%a2%e6%97%b6%e5%a6%82%e4%bd%95%e5%a4%84%e7%90%86%e7%89%b9%e6%ae%8a%e5%ad%97%e7%ac%a6/" class="more-link read-more" rel="bookmark">继续阅读 <span class="screen-reader-text">Bleve 查询时如何处理特殊字符</span><i class="fa fa-arrow-right"></i></a></p>
<p><a rel="nofollow" href="https://wangqianhong.com/2022/10/bleve-%e6%9f%a5%e8%af%a2%e6%97%b6%e5%a6%82%e4%bd%95%e5%a4%84%e7%90%86%e7%89%b9%e6%ae%8a%e5%ad%97%e7%ac%a6/">Bleve 查询时如何处理特殊字符</a>最先出现在<a rel="nofollow" href="https://wangqianhong.com">wqh博客</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>Bleve（<a href="https://github.com/blevesearch/bleve" target="_blank" rel="noreferrer noopener">https://github.com/blevesearch/bleve</a>）是一个全文检索库，用于Go语言。它支持各种查询类型。</p>



<p>Bleve在存储mime_type字段，有类似“image/jpeg”这样数据的时候，我们可以设置字段的Analyzer为keyword，不分词查询：</p>



<pre class="wp-block-code"><code>fileMapping := bleve.NewIndexMapping()
fileMapping.DefaultAnalyzer = "keyword"
docMapping := bleve.NewDocumentMapping()
// 关键字类型字段，不分词
keywordField := bleve.NewKeywordFieldMapping()
docMapping.AddFieldMappingsAt("mime_type", keywordField)
fileMapping.AddDocumentMapping("file", docMapping)
index, err = bleve.New(path, fileMapping)
if err != nil {
	return err
}</code></pre>



<p>可以使用下面代码查看keyword是否生效：</p>



<pre class="wp-block-code"><code>// 获取 mime_type 字段的所有词条
fieldDict, _ := index.FieldDict("mime_type")
defer fieldDict.Close()

for {
	termEntry, err := fieldDict.Next()
	if err != nil || termEntry == nil {
		break
	}
	fmt.Printf("Term: %s\n", termEntry.Term)
}</code></pre>



<p>如果结果是Term: image/jpeg，就表示映射设置成功了</p>



<p>当使用NewPrefixQuery时，可以保证查询的时候，对关键词使用keyword分析器，不进行分词查询</p>



<pre class="wp-block-code"><code>prefixQuery := bleve.NewPrefixQuery(mimeType)
prefixQuery.SetField("mime_type")
prefixSearch := bleve.NewSearchRequest(prefixQuery)
prefixResults, err := index.Search(prefixSearch)
if err != nil {
	return err
}
fmt.Printf("前缀查询结果数: %d", prefixResults.Total)</code></pre>
<p><a rel="nofollow" href="https://wangqianhong.com/2022/10/bleve-%e6%9f%a5%e8%af%a2%e6%97%b6%e5%a6%82%e4%bd%95%e5%a4%84%e7%90%86%e7%89%b9%e6%ae%8a%e5%ad%97%e7%ac%a6/">Bleve 查询时如何处理特殊字符</a>最先出现在<a rel="nofollow" href="https://wangqianhong.com">wqh博客</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wangqianhong.com/2022/10/bleve-%e6%9f%a5%e8%af%a2%e6%97%b6%e5%a6%82%e4%bd%95%e5%a4%84%e7%90%86%e7%89%b9%e6%ae%8a%e5%ad%97%e7%ac%a6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
