Solr在单个字段上进行逻辑搜索

时间:2014-04-28 03:36:14

标签: solr semantics

我在房地产网站上工作,我们将属性的位置(地理坐标)存储在一个表中,并将属性属性(如卧室,浴室等)存储在其他表中。

现在,我必须对用户可以输入自由文本的属性实施基于文本的搜索(例如,30区古尔冈的3卧室公寓)。

好的所以这是我的方法,我正在尝试使用solr来解析用户输入的文本,并从中获取含义完整的关键字,以便我可以查询我的数据库以获得结果。 到目前为止,我已在schema.xml

中创建了一些字段
<field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
<field name="text" type="text_en_splitting" indexed="true" stored="true" multiValued="false" />
<field name="type" type="text_en" indexed="true" stored="true" multiValued="false" />

并索引了一些示例数据,如:

{
        "id": "4",
        "text": "park centra",
        "type": "location",
        "_version_": 1466432256308412400
      },
      {
        "id": "5",
        "text": "park avenue",
        "type": "location",
        "_version_": 1466432273214603300
      },
      {
        "id": "7",
        "text": "swimming pool",
        "type": "amenity",
        "_version_": 1466432327754186800
      },
      {
        "id": "3",
        "text": "sector 30",
        "type": "location",
        "_version_": 1466432234501177300
      },
      {
        "id": "6",
        "text": "City park",
        "type": "location",
        "_version_": 1466432303613870000
      },
      {
        "id": "2",
        "text": "Gurgaon",
        "type": "location",
        "_version_": 1466432219763441700
      },
      {
        "id": "9",
        "text": "bedroom",
        "type": "bedroom",
        "_version_": 1466432362205151200
      },
      {
        "id": "10",
        "text": "bhk",
        "type": "bedroom",
        "_version_": 1466432369752801300
      },
      {
        "id": "8",
        "text": "ATM",
        "type": "amenity",
        "_version_": 1466432341620555800
      }

现在我想让solr为我做的是当用户在第30和第34区输入类似&#34; 2卧室的文本时。 solr应搜索text字段中的字词,按type分组,并从每个组中选择最相关的结果。这样我就能得到像

这样的结果
{
        "id": "9",
        "text": "bedroom",
        "type": "bedroom",
        "_version_": 1466432362205151200
      },
 {
        "id": "3",
        "text": "sector 30",
        "type": "location",
        "_version_": 1466432234501177300
      }

现在我可以轻松地对数据库进行查询并获得结果。

你能告诉我如何从solr中获得这种行为,以及这是否可行?

0 个答案:

没有答案