Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django solr获取在哪个字段中找到匹配项,以便分离结果集_Django_Solr - Fatal编程技术网

Django solr获取在哪个字段中找到匹配项,以便分离结果集

Django solr获取在哪个字段中找到匹配项,以便分离结果集,django,solr,Django,Solr,我是solr的新手,我有一个模式如下 <field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" /> <field name="title" type="text_general" indexed="true" stored="true" required="true" /> <field name="slug" type="text_ge

我是solr的新手,我有一个模式如下

<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" />
<field name="title" type="text_general" indexed="true" stored="true" required="true" />
<field name="slug" type="text_general" indexed="true" stored="true" required="true" />
<field name="description" type="text_general" indexed="true" stored="true"/>
<field name="location" type="text_general" indexed="true" stored="true"/>
<field name="city" type="text_general" indexed="true" stored="true"/>
<field name="area" type="text_general" indexed="true" stored="true"/>
<field name="featured" type="boolean" indexed="true" stored="true" />
<field name="facilities" type="text_general" indexed="true" stored="true" multiValued="true" />
<field name="type_of_venue" type="text_general" indexed="true" stored="true" multiValued="true" />...
我打开了突出显示,所以它会显示在哪个字段中找到的匹配项的突出显示结果,并在结果页面上显示

我想在这里实现的是创建两个单独的结果集,一个是紧密匹配,应该是仅在title中找到的结果和在title中找到的完整搜索字符串,另一个是紧密匹配,搜索字符串将在title以外的其他字段中找到。 我读过关于调试查询的内容,但它给出了一个解释,而不是我可以在代码中检查以区分集合的确切字段,我使用的是django和solr

这背后的主要目的是,如果搜索字符串主要在标题中找到,则我知道它是场馆的名称,并以不同的格式显示相关的搜索数组;或者,如果搜索字符串主要在位置中找到,则我知道用户正在搜索位置,并显示地图以及位置详细信息


提前感谢

我不确定我是否完全理解您的问题,但看起来您需要运行两个不同的搜索(可能是最好的选择)。无需第二次查询:如果要分离结果,可以使用
If result.title中的数据对结果进行后处理。boost
^1000
应该会将标题匹配置于首位(为了安全起见,您可能需要使用更大的数字,如20000),因为您正在增强其他字段,并且多字段匹配可能仅超过标题匹配)。@Dotcomly我最初使用了两个不同的查询,但后来将其更改为一个,我将对数据进行一些后处理,以分离这两组数据。我想知道我是否可以在solr本身中这样做,将数字增加到20000是一个非常好的建议。谢谢
http://localhost:8983/solr/venue/select?q=title:('+data+')^1000+OR+description:('+data+')^10+OR+location:('+data+')^100+OR+city:('+data+')^100+OR+area:('+data+')^100+OR+facilities:('+data+')^50+OR+type_of_venue:('+data+')^100&hl=true&hl.fl=title