我正在搜索仅匹配以搜索键开头的句子的数据。
例如:
search key "what"
结果:渴望一个
**what** is your name
**what** are you doing
**what** is that
etc.
我现在的表现是
Is that **what** you want
some text before **what**
etc.
我也在使用EdgeNGram ..但是它给了我第二个。 任何帮助表示赞赏....
答案 0 :(得分:1)
我认为您正在使用WhitespaceTokenizer。您应该尝试在左端使用带有EdgeNGram的KeywordTokenizer。
如果您尝试实施自动建议,请查看Suggester组件。
答案 1 :(得分:0)
我认为您可以使用以下技巧:将以下行添加到字段定义中:
Imports System.Data
Imports MySql.Data.MySqlClient
Imports System.Configuration
Imports System.Web.Services
Partial Class _Default
Inherits System.Web.UI.Page
<WebMethod>
Public Shared Function GetAreas(areaname As String) As List(Of String)
Dim area As New List(Of String)()
Dim con As New MySqlConnection("Data Source=182.50.133.88;port=3306;Initial Catalog=db;User Id=user;password=pwd;")
Dim query As String = String.Format("SELECT areaName FROM areas", areaname)
'Note: you can configure Connection string in web.config also.
Dim cmd As New MySqlCommand(query, con)
con.Open()
Dim reader As MySqlDataReader = cmd.ExecuteReader()
While reader.Read()
area.Add(reader.GetString(0))
End While
Return area
End Function
End Class
这将添加&#34; AAAA&#34;令牌到您的索引和查询。这样,您就可以匹配索引字符串的开头。
更多信息:
答案 2 :(得分:0)
您可以使用正则表达式“从查询开始” q:(name:/what.*/)
会产生结果,其中名称字段以“ what”开头