编辑回复:
正如亚历山大指出的那样,您使用 edismax 分配权重。为了好玩,如果您将底部的示例数据添加到测试核心并运行以下搜索,它会为您提供正确的 cab 顺序。
http://.us-west-2.compute.amazonaws.com:8983/solr/abc123/select?defType=edismax&indent=on&q=id:ABC-01*%20ORTitle:ABC-01&qf=id^1.5%20Title^0.7&wt=json
在常规查询中,您可以使用 OR:进行普通的普通通配符搜索:
id:ABC-01*
OR
Title:*ABC-01*
然后启用 edismax 并分配权重,我将 id 提高 1.5 并将 Title 减少到 0.7,如下所示:
id^1.5 Title^0.7
回复如下:
{
"responseHeader":{
"status":0,
"QTime":23,
"params":{
"q":"id:ABC-01* \nOR\nTitle:*ABC-01*",
"defType":"edismax",
"indent":"on",
"qf":"id^1.5 Title^0.7",
"wt":"json",
"_":"1477029831405"}},
"response":{"numFound":13,"start":0,"docs":[
{
"id":"ABC-01",
"Title":["ABC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE"],
"joinedDate":["2016-01-10T00:00:00Z"],
"_version_":1548778151323107328},
{
"id":"ABC-010",
"Title":["ABC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE"],
"joinedDate":["2016-01-14T00:00:00Z"],
"_version_":1548778151552745472},
{
"id":"ABC-01234",
"Title":["ABC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE"],
"joinedDate":["2016-01-14T00:00:00Z"],
"_version_":1548778803999801344},
{
"id":"ABC-02",
"Title":["ABC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE"],
"joinedDate":["2016-01-11T00:00:00Z"],
"_version_":1548778151538065408},
{
"id":"ABC-03",
"Title":["ABC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE"],
"joinedDate":["2016-01-12T00:00:00Z"],
"_version_":1548778151548551168},
{
"id":"ABC-04",
"Title":["ABC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE"],
"joinedDate":["2016-01-13T00:00:00Z"],
"_version_":1548778151549599744},
{
"id":"XYZ-04",
"Title":["ABC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE"],
"joinedDate":["2016-01-13T00:00:00Z"],
"_version_":1548778151556939776},
{
"id":"ABC-07",
"Title":["ABC-07 IS AVAILABLE ABC-01-XE"],
"joinedDate":["2015-01-12T00:00:00Z"],
"_version_":1548778495705874432},
{
"id":"BBC-02",
"Title":["ABC-01 CAB IS BUSY RIGHT NOW. "],
"joinedDate":["2016-01-11T00:00:00Z"],
"_version_":1548778803994558464},
{
"id":"ABC-010101",
"Title":["ABC-02 CAB IS BUSY RIGHT NOW. ABC01 CAB IS AVAILABLE"],
"joinedDate":["2016-01-12T00:00:00Z"],
"_version_":1548778803995607040}]
}}
要添加的样本数据:
<add><doc>
<field name="id">ABC-01</field>
<field name="Title">ABC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE</field>
<field name="joinedDate">2016-01-10</field>
</doc>
<doc>
<field name="id">ABC-02</field>
<field name="Title">ABC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE</field>
<field name="joinedDate">2016-01-11</field>
</doc>
<doc>
<field name="id">ABC-03</field>
<field name="Title">ABC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE</field>
<field name="joinedDate">2016-01-12</field>
</doc>
<doc>
<field name="id">ABC-04</field>
<field name="Title">ABC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE</field>
<field name="joinedDate">2016-01-13</field>
</doc>
<doc>
<field name="id">ABC-010</field>
<field name="Title">ABC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE</field>
<field name="joinedDate">2016-01-14</field>
</doc>
<doc>
<field name="id">ABC-07</field>
<field name="Title">ABC-07 IS AVAILABLE ABC-01-XE</field>
<field name="joinedDate">2015-01-12</field>
</doc>
<doc>
<field name="id">XYZ-04</field>
<field name="Title">ABC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE</field>
<field name="joinedDate">2016-01-13</field>
</doc>
<doc>
<field name="id">DBC-01</field>
<field name="Title">DBC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE</field>
<field name="joinedDate">2016-01-10</field>
</doc>
<doc>
<field name="id">BBC-02</field>
<field name="Title">ABC-01 CAB IS BUSY RIGHT NOW. </field>
<field name="joinedDate">2016-01-11</field>
</doc>
<doc>
<field name="id">ABC-010101</field>
<field name="Title">ABC-02 CAB IS BUSY RIGHT NOW. ABC01 CAB IS AVAILABLE</field>
<field name="joinedDate">2016-01-12</field>
</doc>
<doc>
<field name="id">ABC-01QWERTY</field>
<field name="Title">CAB IS BUSY RIGHT NOW. </field>
<field name="joinedDate">2016-01-13</field>
</doc>
<doc>
<field name="id">ABC-01234</field>
<field name="Title">ABC-01 CAB IS BUSY RIGHT NOW. ABCDE CAB IS AVAILABLE</field>
<field name="joinedDate">2016-01-14</field>
</doc>
<doc>
<field name="id">ABC-007</field>
<field name="Title">ABC-007 IS AVAILABLE ABC-01-XE</field>
<field name="joinedDate">2015-01-12</field>
</doc>
<doc>
<field name="id">XYZ-014</field>
<field name="Title"> ABCDE CAB IS AVAILABLE. ABC-01 CAB IS BUSY RIGHT NOW.</field>
<field name="joinedDate">2016-01-13</field>
</doc></add>
原始回复:
您可能正在寻找类似的东西:
id:ABC-01* OR id:*ABC
URL 中的查询如下所示:
http:<server>:8983/solr/<core>/select?indent=on&q=id:ABC-01*%20OR%20id:*ABC&wt=json